Javascript funktioniert nach AjaxRequest nicht mehr

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Javascript funktioniert nach AjaxRequest nicht mehr

    Hey jetzt komme ich wieder mit meinen Problemen :P

    Also ich habe ein select tag, mit einem onchange der eine Ajax funktion aufruft. Das heißt je nach dem was ausgewählt wird, ändert sich die Mysql abfrage. Das sieht so aus:

    Quellcode

    1. <script type=\"text/javascript\">
    2. function foo(ref, id) {
    3. $.post(\"check.php\", { id: id }, function(data){
    4. document.getElementById('result').innerHTML = data;
    5. });
    6. }
    7. </script>
    8. <select name="che" onchange="foo(this, this.value)">
    9. <option value="0">W&auml;hle aus</option>
    10. <option value="1">1</option>
    11. <option value="2">2</option>
    12. <option value="3">3</option>
    13. <span id="result"></span>
    Alles anzeigen


    Gearbeitet wird mit JQuery. So die check.php hat dann dementsprechend ein Mysql Statment, der halt je nach dem was gewählt wurde daten rausholt.
    Jetzt das Problem. Die Daten die ich rausgeholt habe, würde ich natürlich gerne weiterverarbeiten.

    Aber selbst bei dem einfachen test geht das nicht:

    Quellcode

    1. <script type="text/javascript">
    2. function fsend() {
    3. alert('test')
    4. }
    5. </script>
    6. <a href="javascript:;" onClick="fsend()">Test</a>


    Wenn ich check.php direkt aufrufe geht es. Aber wenn ich sie mit dem Ajax Request aufrufe nicht mehr.

    Gibt es eine Lösung für das Problem? Denn ich muss die Daten irgendwie weiter verarbeiten, und das ganze wollte ich wiederrum mit Ajax machen.



    Edit:// vlt ein besseres beispiel:


    Quellcode

    1. <script type="text/javascript">
    2. function test() {
    3. alert('hallo');
    4. }
    5. </script>
    6. <input type="button" onclick="test();"> <- funktioniert nicht
    7. <input type="button" onclick="alert('test');"> <- funktioniert


    wieso funktioniert es nicht, dass ich nach dem ajax request, die funktion aufrufen kann?


    Edit2:// Problem erledigt. dennoch danke

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Snowflake ()

  • Huhu d0ut. Erinnerst du dich noch an das Thema? Ich hatte es ja damals anders gelöst und das mit eval() aus zeitgründen und dem grund, never change a running system...nicht mehr probiert. :P

    Jetzt brauche ich das ganze aber doch wieder. Nur funktioniert das ganze trotzdem nicht, wenn ich aus

    Quellcode

    1. function test() {
    2. alert('hallo');
    3. }


    -----
    das ganze mit eval mache:

    Quellcode

    1. function test() {
    2. alert(eval('hallo'));
    3. }


    Oder habe ich es falsch angewendet? ^^
    Hab schon im netz was rumgesucht zu eval, und ajax
    Und fand das hier:

    Quellcode

    1. var testsstring = 'function test(){ alert("xyz"); }';
    2. eval(testsstring);


    Hat aber auch nicht funktioniert. Ansonsten wüsste ich nicht wie ich eval() anwenden könnte, damit es geht.
  • eval ist doch das einfachste (und böseste) der Welt ;)
    Ich bin sicher du verwendest es nur falsch. Daher hier mal ein Komplettbeispiel mit zwei Möglichkeiten JavaScript nachzuladen:

    Quellcode

    1. <html>
    2. <head>
    3. <title>JavaScript per AJAX nachladen</title>
    4. <script type="text/javascript">
    5. function sendRequest() {
    6. var req;
    7. try {
    8. req = window.XMLHttpRequest?new XMLHttpRequest():
    9. new ActiveXObject("Microsoft.XMLHTTP");
    10. } catch (e) {
    11. //Kein AJAX Support
    12. }
    13. req.onreadystatechange = function() {
    14. if ((req.readyState == 4) && (req.status == 200)) {
    15. // Möglichkeit 1
    16. if(true) {
    17. eval(req.responseText);
    18. } else {
    19. // Möglichkeit 2
    20. var t = document.createTextNode(req.responseText);
    21. var head = document.getElementsByTagName('head')[0];
    22. var script = document.createElement("script");
    23. script.appendChild(t);
    24. head.appendChild(script);
    25. }
    26. }
    27. }
    28. req.open('post', 'func.php');
    29. req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    30. req.send('var=wert');
    31. return false;
    32. }
    33. </script>
    34. </head>
    35. <body onload="sendRequest()">
    36. </body>
    37. </html>
    Alles anzeigen