2015-08-09 5 views
1

Я пытаюсь сделать простую форму с двумя текстовыми полями и двумя выпадающими списками в 1 форме. Я пытаюсь сохранить значения POST, но это не работает, я получаю:Множественные поля ввода/ввода POST в PHP

Notice: Undefined index: team2
Notice: Undefined index: players2

Моя страница POST это:

$team1 = $_POST["team1"]; 
$team2 = $_POST["team2"]; 
$str1 = $_POST["players1"]; 
$str2 = $_POST["players2"]; 

И мой Форма такова:

<form action="cap_update.php" method="post"> 
To: 
<select name="team1"> 
<option value="Anaheim">Anaheim</option> 
<option value="Arizona">Arizona</option> 
<option value="Boston">Boston</option> 
</select><br><br> 
<textarea rows="5" cols="80" name="players1"></textarea> 
<br><br> 
To: 
<select name="team2"> 
<option value="Anaheim">Anaheim</option> 
<option value="Arizona">Arizona</option> 
<option value="Boston">Boston</option> 
</select><br><br> 
<textarea rows="5" cols="80" name="players2"></textarea> 
<br><br> 
<input type="submit" value="Submit trade!"> 
</form> 
+0

Что делает почтовая страница похожей на код? – Rasclatt

+0

Что произойдет, если вы var_dump ($ _ POST) на странице ** POST **? –

+0

Лол, ты только что понял, что остальная часть моего кода может быть проблемой. Сейчас он работает ... @ Rasclatt – rolomcflurry

ответ

2
<?php 
if(isset($team1)) 
{ 
$team1 = $_POST["team1"]; 
$team2 = $_POST["team2"]; 
$str1 = $_POST["players1"]; 
$str2 = $_POST["players2"]; 
} 
print_r($_POST); 

?> 
<form action="index.php" method="post"> 
To: 
<select name="team1"> 
<option value="Anaheim">Anaheim</option> 
<option value="Arizona">Arizona</option> 
<option value="Boston">Boston</option> 
</select><br><br> 
<textarea rows="5" cols="80" name="players1"></textarea> 
<br><br> 
To: 
<select name="team2"> 
<option value="Anaheim">Anaheim</option> 
<option value="Arizona">Arizona</option> 
<option value="Boston">Boston</option> 
</select><br><br> 
<textarea rows="5" cols="80" name="players2"></textarea> 
<br><br> 
<input type="submit" value="Submit trade!"> 
</form> 



use isset to check 

otherwise you can use 
error_reporting(E_ERROR | E_PARSE); 
E_ERROR 


    <?php 
error_reporting(E_ERROR | E_PARSE); 
$team1 = $_POST["team1"]; 
$team2 = $_POST["team2"]; 
$str1 = $_POST["players1"]; 
$str2 = $_POST["players2"]; 
?> 
<form action="index.php" method="post"> 
To: 
<select name="team1"> 
<option value="Anaheim">Anaheim</option> 
<option value="Arizona">Arizona</option> 
<option value="Boston">Boston</option> 
</select><br><br> 
<textarea rows="5" cols="80" name="players1"></textarea> 
<br><br> 
To: 
<select name="team2"> 
<option value="Anaheim">Anaheim</option> 
<option value="Arizona">Arizona</option> 
<option value="Boston">Boston</option> 
</select><br><br> 
<textarea rows="5" cols="80" name="players2"></textarea> 
<br><br> 
<input type="submit" value="Submit trade!"> 
</form> 
0

Поскольку у вас есть четыре переменные, если вы проверите isset ($ team1) внутри оператора условия if, он будет вызывать ошибку, если какая-либо из других переменных пуста.

Вместо этого вы можете использовать тройные операторы. Пример, как указано ниже,

<?php 
    $team1 = (isset($_POST["team1"]))?$_POST["team1"]:''; 
    $team2 = (isset($_POST["team2"]))?$_POST["team2"]:''; 
    $players1 = (isset($_POST["players1"]))?$_POST["players1"]:''; 
    $players2 = (isset($_POST["players2"]))?$_POST["players2"]:''; 
?> 
Смежные вопросы