2017-02-07 4 views
0

Von einer JavaScript-Datei rufe ich ein PHP-Skript über Ajax. Das PHP gibt ein Echo mit einer Tabelle zurück. Etwas wie dieses:Targeting-IDs erstellt von PHP

echo "<tr><td id=\"something\">$value<\td><\tr>"; 

Das funktioniert gut. Aber jetzt möchte ich die Zelle mit ID "etwas" anvisieren. das kann ich nicht, weil JavaScript die id nicht erkennt, weil sie bereits geladen war, bevor ich den Aufruf von PHP gemacht habe. Ich habe versucht, meine Javascript-Datei nach dem Aufruf der PHP-Datei neu zu laden. Als es die ID findet, aber es läuft alle meine anderen Skripte zweimal (ich denke, weil die Javascript-Datei zweimal geladen und ersetzt nicht die alte).

Gibt es eine Möglichkeit, diese ID zu tarnen, ohne die JavaScript-Datei erneut zu laden. Ps.s. Ich habe die Javascript-Datei als Teil der PHP-Datei neu geladen. Am Ende der PHP-Datei setzen i setzen so etwas wie dieses:

echo "<script type=\"text/javascript\" src=\"js/javaScriptfile.js\"></script>"; 

Das PHP-Skript wie folgt aussieht:

echo "<tr><td>Persmachine appels</td><td id=\"capaciteitPersmachineAppelsBeginRonde\">$capaciteitPersmachineAppelsBeginRonde</td><td id=\"uitbreidenPersmachineAppels\">$uitbreidenPersmachineAppels</td><td id=\"actueleCapaciteitPersmachineAppels\">$actueleCapaciteitPermachineAppels</td><td id=\"capaciteitPersmachineAppelsPerStap\">$capaciteitPenSMachineAppelsPerStap</td><td id=\"kostenPersmachineAppelsPerStap\">$kostenUitbreidingPenSMachineAppelsPerStap</td><td><button class=\"btn btn-default\" id=\"BTNpersmachineAppelsPlus\"><img src=\"Graphics\PlusIcon.png\" width=\"20\" /></button><button class=\"btn btn-default\" id=\"BTNpersmachineAppelsMin\"><img src=\"Graphics\minIcon.png\" width=\"20\" /></button></td><td id=\"nieuweCapaciteitPersmachineAppels\">$actueleCapaciteitPermachineAppels</td></tr>"; 

Der Aufruf AJAX sieht wie folgt aus:

$.ajax({ 

      url:'http://12dobec.nl/JFC/php/huidigeStatusPerCategorieDownloadenV2.php', 
      data:{klas:klas, team:team, gekozenOverzicht:gekozenOverzicht}, 
      type: "GET", 
      success: function(data){ 

      $('#BeslissingenFabriek').html(data); 

      }}); 

Wie Sie können sehen, wie ich zwei Tasten in das PHP-Echo einfügen. Ich kann sie auch nicht anvisieren. Wieder denke ich, weil die Javascript-Datei zuvor geladen wurde. Wenn das Javascript erneut geladen wird, findet es alles, aber dann läuft das Skript zweimal.

+0

Willkommen Stapelüberlauf. Kannst du deinen Ajax-Aufruf im Kontext anzeigen, auch den Inhalt der PHP-Datei insgesamt. Aus Ihrer Frage klingt es, als würden die Dinge ein wenig ineffizient organisiert sein, aber ich kann nicht sicher sagen, ohne sie zu sehen. –

+0

Die PHP-Datei generiert diesen Code: –

+0

Verwenden Sie 'jQuery'? Wenn nicht, können Sie vielleicht das Ereignis an ein Elternelement binden (vielleicht '') und das Ereignis mit einer 'if'-Anweisung abfangen, wie diese [http://stackoverflow.com/a/14259372/3889043] Antwort. – mrlew

Antwort

0

Um auf die Elemente zu zielen, müssen sie dem DOM hinzugefügt werden. Es gibt andere Wege, aber das ist einfach.

Es wird das Element der DOM-Struktur in Ihrem Beispiel hinzufügen, indem Sie die Daten als HTML analysieren. Sie werden in der Lage sein, direkt auf die Elemente Ziel geschaffen, wie sie auf das DOM zu den DOCUMENTATION

Andere Positionen sind

$.ajax({ 
url:'http://12dobec.nl/JFC/php/huidigeStatusPerCategorieDownloadenV2.php', 
      data:{klas:klas, team:team, gekozenOverzicht:gekozenOverzicht}, 
      type: "GET", 
      success: function(data){ 
      var theTarget = document.getElementById('BeslissingenFabriek'); 
      theTarget.insertAdjacentHTML('afterbegin',data); 
      }}); 

Eine vollständige Erklärung und weitere Details sehen hinzugefügt:

'beforebegin' - Before the element itself. 
'afterbegin' - Just inside the element, before its first child. 
'beforeend' - Just inside the element, after its last child. 
'afterend' - After the element itself. 
Verwandte Themen