Как я могу POST форму, где поле имени генерируется из цикла? - PullRequest
0 голосов
/ 21 июня 2011

Я так близко !!

Я не могу понять, как разместить эти значения.Вот что у меня есть:

<form action="process.php" method="post">
  <?php 
  foreach (array_combine($UndefinedEvents, $EventDates) as $event=>$dates){
  echo "This Event does not have a Timeline associated with it: " .$event . " on ".$dates. '<br>';
  echo "Choose a Timeline:<br>";
  ?>
  <?php echo "<select name=".$EventID[$i].">"; ?>
  <option selected = "selected"></option>
  <?php foreach (array_combine($TimelineID, $UserTimelines) as $temptimelineID=>$timeline){ 
        echo "<option value=".$temptimelineID."> ".$timeline. "</option>";

  }
  echo " </select><br><br>";
  $i = $i+1;
  }
  ?>
  <input type="submit" />
  </form>

Сверху много чего происходит, но разметка дает мне то, что я хочу.Вот пример того, как выглядит выше:

<form action="processGoogle.php" method="post">
  This Event does not have a Timeline associated with it: 
  First Event on 2011-07-01 00:00:00
  <br>
  Choose a Timeline:
  <br>
  <select name=3576> //THIS is $eventID
    <option selected = "selected">    </option>
    <option value=257> Timeline One   </option>
    <option value=258> Timeline Two   </option>
    <option value=259> Timeline Three </option> 
  </select>
  <br>
  <br>
  This Event does not have a Timeline associated with it: 
  Next Event on 2011-06-30 00:00:00
  <br>
  Choose a Timeline:
  <br>
  <select name=3573>//THIS is $eventID
    <option selected = "selected">    </option>
    <option value=257> Timeline One   </option>
    <option value=258> Timeline Two   </option>
    <option value=259> Timeline Three </option> 
  </select>
  <br>
  <br>
  ...
  <input type="submit">
</form>

Что мне нужно сделать, это опубликовать значение для $EventID и $temptimelineID.

Что мне нужно сделать, чтобыпередать эту информацию по почте, и что мне нужно иметь в моей форме process.php, чтобы прочитать ее?

Спасибо за любую помощь!

Ответы [ 2 ]

2 голосов
/ 21 июня 2011

Похоже, у вас есть переменная $ _POST.Попробуйте

$x = array_keys($_POST);
foreach($x as $y) {
echo $y ." = ". $_POST[$y]."<br/>";
}
0 голосов
/ 21 июня 2011

Чтобы просто увидеть значения вашего суперглобального $ _POST, было бы проще написать:

<code>print "<pre>"; var_dump($_POST); print "
";

Тем не менее, есть несколько способов передать поля, сгенерированные машиной.

Вариант 1) Укажите для полей уникальный префикс, например:

<select name="timeline_3576"> //THIS is $eventID

Затем нужно просто просмотреть значения $ _POST для соответствующего префикса, разобрать строку в подчеркивании и принять второе значение. Боб твой дядя.

Вариант 2) Создайте массив и передайте его в скрытое поле.

<select name="3576"> //code snipped
<select name="9999"> //code snipped
<input type="hidden" name="timelines" value="3576,9999">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...