2015-12-15 2 views
0

Так что я задаю вопрос: Я делаю цикл foreach и генерирует список ссылок. В каждой ссылке есть JavaScript, который представляет форму. Я хочу, однако, привязать к КАЖДОЙ ссылке переменную, чтобы я мог получить переменную $ _POST, чтобы увидеть, какая ссылка WHICH была нажата.Как назначить уникальное значение в скрытых полях в цикле foreach

Я попробовал петлю Еогеаспа, а затем что-то вроде:

foreach ($matches as $match) { 
    ?> 
    <div class="containerbla"> 
     <form> 
      <h3><a href="javascript:{}" onclick="document.getElementById('matchesform').submit(); return false;"><?php echo $match->name?></a></h3> 
      <?php echo $match->id; ?> 
      <input type="hidden" name="matchid" value="<?php echo $match->id; ?>"> 
     </form> 
    </div> 
    <?php 
} 

Это показывает правильный список имен пользователей и правильные права пользователя удостоверения личности ниже. Но когда я нажимаю на пользователя, я всегда получаю ПОСЛЕДОВАТЕЛЬНЫЙ идентификатор пользователя в скрытом поле, отправленный на мой просмотр-сообщения php.

Как я могу это решить?

+0

Использование массива: '"> ' –

+0

Где этот 'matchform' вы отправка данных? Это не в этом примере, формы, которые вы создаете программно, не имеют идентификатора, поэтому их значения не являются теми, которые вы отправляете при нажатии. – alzee

+0

@RobbieAverill: Я пытался, но как это помогает при фактическом извлечении массива/значение, которое было нажато? Я пробовал $ _POST ['matchid'] [0], и я все равно получаю тот же результат, что и aabove – FlashNewbie

ответ

0
foreach ($matches as $key=>$match) { ?> 

       <div class="containerbla"> 
        <form> 
         <h3><a href="javascript:{}" onclick="var poop = document.getElementById('matchesform'); poop.insertAdjacentHTML('<input type=\"hidden\" name=\"poop\" value=\"<?php echo $key; ?>\"/>'); poop.submit(); return false;"><?php echo $match->name?></a></h3> 
         <?php echo $match->id; ?> 
         <input type="hidden" name="matchid" value="<?php echo $match->id; ?>"> 
        </form> 
       </div> 
      <?php 
      } 

Тогда вы будете иметь возможность получить индекс, используя $matches[$_POST['poop']];

Я вижу, что вы создаете новый вход уже, но вы не поставив его в правильной форме, поэтому он ISN не получаю.

+0

ах, я не обращал внимания –

+1

@SetSailMedia - Проверьте изменения. –

+0

@FlashNewbie checck the edit –

Смежные вопросы