отображение правильного идентификатора - PullRequest
0 голосов
/ 17 мая 2018

У меня проблемы с этим кодом. Я делаю форум для себя, чтобы проверить свои навыки ( выглядит так ), и теперь у меня возникают проблемы с отображением правильного идентификатора. Мне нужен идентификатор для чего-то, но когда я тестирую этот код здесь, он будет отображать мне один и тот же идентификатор для каждой реакции. Я не уверен почему? Может быть, <script> не работает в foreach? надеюсь, кто-то может помочь мне с этой проблемой.

$reacttie = $app->get_reactie($actieftopicid);
foreach ($reacttie as $reactie) {
echo '
<div class="timeline-footer">
  <script type="text/javascript">
   function printIt(){
     alert(document.getElementById("abcId").value);
  </script>

  <form name="formName">
    <input type=hidden id="abcId" name="abcName" value="'.$reactie['id'] .'"/>
    <input class="btn btn-primary btn-xs" type=button value="Reageer" onclick="printIt()" />
  </form>
</div>';

Ответы [ 2 ]

0 голосов
/ 17 мая 2018

Ваша часть php правильна, но ваш код JavaScript неверен.В настоящее время у вас есть много элементов с одинаковым идентификатором, и getElementById возвращает только первый соответствующий элемент.Вместо этого вам следует использовать классы и родственные отношения или что-то вроде.

В дополнение к этому, вы определяете функцию printIt несколько раз, что также не является хорошей идеей - переместите функцию за пределы цикла (или событие лучше)., переместите всю логику javascript во внешний файл .js)

В вашем случае есть и более простой способ - просто передать идентификатор функции:

$reacttie = $app->get_reactie($actieftopicid);
echo '<script type="text/javascript">
   function printIt(id){
     alert(id);
  </script>';

foreach ($reacttie as $reactie) {
echo '
<div class="timeline-footer">    
  <form name="formName">
    <input type=hidden name="abcName" value="'.$reactie['id'] .'"/>
    <input class="btn btn-primary btn-xs" type=button value="Reageer" onclick="printIt(\''.$reactie['id'] .'\')" />
  </form>
</div>';
0 голосов
/ 17 мая 2018

Это классическая ошибка: вы создаете несколько элементов с одним и тем же идентификатором, поэтому document.getElementById("abcId") всегда вернет вам первый элемент с этим идентификатором.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...