• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Problem mit Request und Javascript

Maximilian

Mitglied
Hallo,

ich habe folgendes Problem: Per Request sende ich diverse Parameter an eine PHP Datei. Diese gibt die Daten in einer Tabelle zurück an die Datei, die den Request gesendet hat. Nun möchte ich jedoch im Response mit Javascript arbeiten. Ich habe dazu das Javascript auf die ursprüngliche Seite, von der auch der Request ausgeht, gesetzt. Funktioniert aber nicht. Das Script wird nicht ausgeführt! Muss ich das JS auch in die PHP Datei packen? Und dann alles zusammen zurück an die Ursprungsdatei senden? Hier mal mein Code, jedoch mit vereinfachten Beispielen nur zur Demonstration!

Ursprungsdatei (index.php): Von Hier aus wird der Request gesendet und im <div id="liste"> ausgegeben.
Code:
    $('#show_alle').click(function() {

        var x = document.getElementById('slct').value;
       
        $.get('name.php', { x: x}, function(data) {
            $('#liste').html(data);
        });   
    });

In der PHP Datei (name.php) habe ich nun u.a. einen Button eingefügt:
Code:
<button id="btn">Klick</button>

Dieser wird dann im <div id="liste"> ausgegeben, jedoch möchte ich beim Klick ein alert() aufrufen (vereinfachter Code; nur zur Demonstration). Also habe ich in der inde.php folgendes:
Code:
$('#btn').click(function() {
alert("Hallo!");
});

Das ganze Konstrukt funktioniert jedoch nicht, wie oben schon beschrieben. Kann mir jemand helfen?

Vielen Dank schon im voraus!
 
Werbung:
Zwei Dinge:

Erstens, verzichte auf Shorthands wie get() oder post(), sondern nimm ajax(); Das ist etwas mehr zu schreiben, aber leichter zu lesen. Zweitens, click() ist ein Eventhandler, der so nicht bei Elementen funktioniert, die nach dem Laden der Seite per AJAX ins DOM eingefügt werden. Du benötigst statt dessen Eventdelegation mit on(), das vorzugsweise auf ein Parent von #btn aufgerufen wird. Versuche mal:

Code:
$('#btn').on('click', function () {...});

//oder

$('body').on('click', '#btn', function () {..});

Die genaue Synrax steht in der jQuery Doku.
 
Zurück
Oben