Как правильно передать массив из формы выбора на другую страницу PHP

0

Позвольте мне объяснить далее. У меня есть выбранная форма на моей первой php-странице (позволяет вызывать эту страницу first.php). У меня есть кнопка отправки. Я улавливаю массив на второй странице (дайте ссылку на эту страницу sec.php) с помощью $ _POST, а затем установив его в переменную PHP. Однако я не могу его распечатать. Вот как выглядит мой код/​​надпись на first.php

<label>Product:</label>
    <select name="arr[]">
        <option value="Mobile">Mobile</option>
        <option value="Social">Social</option>
        <option value="Online">Online</option>
    </select>

Примечание. Я знаю, что для этого мне не нужен массив. Но я хочу сохранить его таким образом.

Вот как выглядит мой код на sec.php:

<?php
    $arr= $_POST['arr'];
?>

Я хочу, чтобы он печатался в этой таблице HTML:

<tr>
    <td width="200"> <?php echo $url[0]; ?></td>
    <td width="200"> <?php echo $sMonth[0] . "/" . $sDay[0] . "/" . $sYear[0]; ?></td>
    <td width="200"> <?php echo $eMonth[0] . "/" . $eDay[0] . "/" . $eYear[0]; ?></td>
    <td> <?php echo $tBudget[0]; ?></td>
    <td> <?php echo $dBudget[0]; ?></td>
    <td> <?php echo $model[0]; ?></td>
    <td> <?php echo $bid[0]; ?></td>
    <td> <?php echo $target[0]; ?></td>
    <td> <?php echo $status[0]; ?></td>
    <td width="200"> <?php echo $arr[0]; ?></td>
    <td> <?php echo $tUnits[0]; ?></td>
</tr>

ПРИМЕЧАНИЕ = все другие переменные и значения печатают только FINE (используя тот же метод и концепцию, что и переменная $ arr), но ТОЛЬКО переменная $ arr не может печатать).

Что я делаю не так?

  • 0
    Что делает var_dump($arr); шоу? Как насчет var_dump($_POST); ?
  • 0
    var_dump ($ arr) говорит следующее: dasarray (1) {[0] => string (6) "Mobile"}
Теги:
forms

3 ответа

1

+ Изменить

<select name="arr[]">
...
<td width="200"> <?php echo $arr[0]; ?></td>

в

<select name="arr">
...
<td width="200"> <?php echo $arr; ?></td>

Вы хотите использовать array naming только в том случае, если у вас есть опция множественного выбора

  • 0
    Можете ли вы уточнить это дальше? это не несколько. Пользователь выбирает ОДНУ опцию, эта опция будет помещена в массив.
  • 0
    @ user3108505 точно, так как вы передаете только ОДНО значение, вам не нужно называть свой select arr[] и вы только читаете его в своем php следующим образом: $arr вместо arr[0] так как это не массив. Прочитайте мой обновленный ответ.
Показать ещё 8 комментариев
0

u нужно использовать для цикла для получения значений в вашем массиве.

<form action="<?php echo @$_SERVER['PHP_SELF'];?>" method="POST"> 
            <select name="arr[]" multiple>
                <option>Radio</option>
                <option>TV</option>
                <option>Keyboard</option>
                <option>DVD Player</option>
                <option>Screen</option>
            </select>
            <input type="submit" value="GO!">
        </form>
<?php
$data=@$_POST['arr'];
$len = count($data); // getting length of ur array that u need to condition ur loop
for($y=0;$y<$len;$y++){
    echo "$data[$y]"."<br />";
}
?>
  • 0
    если вы не будете использовать цикл, не используйте несколько, тогда несколько позволяют пользователю выбирать много значений, поэтому вы выбираете select arr [] as (array), лучший способ вывести значения массива = looping, в коде вы просто печатаете первый индекс arr [0] дай знать почему? !!
0

На самом деле, возможно, что-то вроде этого:

   <select name="arr[]" multiple>
      <option value="Mobile">Mobile</option>
      <option value="Social">Social</option>
      <option value="Online">Online</option>
   </select>
  • 0
    но наличие «множественного» приведет к вставке всех 3 значений. Я не хочу этого Я хочу, чтобы выбранный вариант был вставлен только в первую элементарную позицию.
  • 0
    Я даже пытался использовать несколько. Все еще не печатает.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню