2016-06-20 2 views
-1

Я хочу создать форму с использованием массива, в которой пользователь может выбрать число и повторить имя соответствующего объекта после submit. Я не знаю, почему этот код не работает, может кто-то пожалуйста, научите меня, как сделать это правильно :(Большое спасибо за ваше время.php form using array

<form name="train" method="GET" action="test.php"> 

<select name="object"> 
<option value="0">0</option> 
<option value="1">1</option> 
<option value="2">2</option> 
<option value="3">3</option> 
<option value="4">4</option> 
<option value="5">5</option> 
<option value="6">6</option> 
<option value="7">7</option> 
<option value="8">8</option> 
<option value="all">Show All</option> 
</select> 

<input type="submit" name="submit" id="submit" value="submit" size="10"> 
</form> 

<?php 

$train[0] = "pencil"; 
$train[1] = "macaron"; 
$train[2] = "notes"; 
$train[3] = "book"; 
$train[4] = "eraser"; 
$train[5] = "cake"; 
$train[6] = "laptop"; 
$train[7] = "mint"; 
$train[8] = "cup"; 

if ($_GET['submit']) { 
$train = $_GET['obejct']; 

echo "<p>I have $train!</p>"; 
} 

?> 

Спасибо большое!

ответ

1

Похоже, вы устанавливаете $train на значение любой формы, которую нужно передать для поля выбора объекта, а затем эхом. Тогда вы ожидаете увидеть число от 0 до 8 или слово «все», но ваша ссылка на ключ объекта имеет слово «объект» с ошибкой как «obejct», поэтому, полагаю, вы ничего не печатаете, как значение $train.

В любом случае, что вы действительно хотите сделать, это напечатать значение в ключе в массиве $train, которое соответствует тому, что было предоставлено пользователем. Это означает, что после создания массива, который функционирует как карта, вы должны выбрать элемент из массива, который вы хотите распечатать.

Вам также нужно обработать «все» дело или вы получите сообщение об ошибке.

Вот как это будет выглядеть, если вы будете продолжать с помощью опции массива:

<form name="train" method="GET" action="test.php"> 

<select name="object"> 
<option value="0">0</option> 
<option value="1">1</option> 
<option value="2">2</option> 
<option value="3">3</option> 
<option value="4">4</option> 
<option value="5">5</option> 
<option value="6">6</option> 
<option value="7">7</option> 
<option value="8">8</option> 
<option value="all">Show All</option> 
</select> 

<input type="submit" name="submit" id="submit" value="submit" size="10"> 
</form> 

<?php 

$train[0] = "pencil"; 
$train[1] = "macaron"; 
$train[2] = "notes"; 
$train[3] = "book"; 
$train[4] = "eraser"; 
$train[5] = "cake"; 
$train[6] = "laptop"; 
$train[7] = "mint"; 
$train[8] = "cup"; 

if ($_GET['submit']) { 

    if ($_GET['object'] != 'all') { 
     //Handle the non-all case 
     $value = $train[$_GET['object']]; //This references a key in your array, like $train[0] 
     echo "<p>I have $value!</p>"; 
    } else { 
     //Handle the all case here 
    } 

} 

?> 
+0

Вы избили меня к нему. Самый быстрый пистолет на западе. +1 –

+1

Ха-ха, _for once_ – stratedge