2017-02-07 2 views
0

Из файла JavaScript я вызываю скрипт PHP через Ajax. PHP возвращает эхо с таблицей. Что-то вроде этого:Идентификатор таргетинга, созданный php

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

Это прекрасно работает. Но теперь я хочу настроить таргетинг на ячейку с идентификатором «что-то». что я не могу сделать, потому что JavaScript не распознает идентификатор, потому что он уже был загружен, прежде чем я сделал вызов PHP. Я попытался перезагрузить свой файл javascript после вызова php-файла. Чем он находит идентификатор, но он запускает все мои другие скрипты дважды (я думаю, потому что файл javascript загружен дважды и не заменяет старый).

Есть ли способ настроить этот идентификатор без повторной загрузки файла javascript. P.s. Я перезагрузил javascript-файл как часть файла php. В конце файла PHP я поставил поставить что-то вроде этого:

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

Сценарий PHP выглядит следующим образом:

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>"; 

вызов AJAX выглядит следующим образом:

$.ajax({ 

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

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

      }}); 

Как вы можете видеть, что я добавляю две кнопки в эхо php. Я тоже не могу нацелить их. Снова я думаю, потому что файл javascript загружен раньше. При загрузке javascript снова он находит все, но затем скрипты запускаются дважды.

+0

Добро пожаловать для переполнения стека. Вы можете показать свой вызов Ajax в контексте, а также содержимое файла php в целом. Из вашего вопроса это звучит так, будто вещи могут быть организованы немного неэффективно, но я не могу сказать точно, не видя их. –

+0

Файл php генерирует этот код: –

+0

Вы используете 'jQuery'? если нет, возможно, вы можете связать событие с родителем (возможно, '') и поймать событие с помощью инструкции 'if', например [this] (http://stackoverflow.com/a/14259372/3889043). – mrlew

ответ

0

Для того чтобы нацелить элементы, они должны быть добавлены в DOM. Есть и другие способы, но это прямолинейно.

Element.insertAdjacentHTML() 

Он добавит элемент в дерево DOM в вашем примере, проанализировав данные как HTML. Вы сможете непосредственно предназначаться элементы, созданные как они добавляются в DOM

$.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); 
      }}); 

Для полного объяснения и более подробную информацию смотрите на DOCUMENTATION

Другие позиции включают в себя:

'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. 
Смежные вопросы