嘿,我在使用选项[]数组工作时遇到一些麻烦,如果有人可以提供帮助那就太棒了 表格
<form method="post" action="array2.php">
<select name="options[]">
<option value=""></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="9">9</option>
<option value="10">10</option>
</select>
<input name="submit" type="submit" value="submit">
</form>
array2.php
<?php
session_start();
if(isset($_POST['submit'])){
if($_POST['options[]'] == "" ){
header("Location: error.html");
exit;
}else{
$checked = $_POST['options'];
$_SESSION['checked'] = $checked;
}
}
?>
任何帮助都会很棒,即使它是一个空的场地,也会发生什么事情,事情进展到脚本的其余部分
脚本的其余部分
<?php
for($i=0; $i < count($checked); $i++){
echo "You have selected to recive " . $checked[$i] . " tickets<br/>";
}
for($i=0; $i < count($checked2); $i++){
echo "And you have selected to recive " . $checked2[$i] . " for accommodation are you sure? <br/>";
}
?>
对不起我现在无法回复人,因为我发布课程来到空房间所以需要等一个小时:/
答案 0 :(得分:3)
您需要将options[]
更改为option
,因为这意味着您要提交多个具有相同名称的选项
<form method="post" action="array2.php">
<select name="options">
<option value=""></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="9">9</option>
<option value="10">10</option>
</select>
<input name="submit" type="submit" value="submit">
</form>
在您的array2.php
文件中
<?php
session_start();
if(isset($_POST['submit'])){
if($_POST['options'] == "" ){
header("Location: error.html");
exit;
}else{
$checked = $_POST['options'];
$_SESSION['checked'] = $checked;
}
}
?>
如果您确实需要发送options[]
<?php
session_start();
if(isset($_POST['submit'])){
if(is_array($_POST['options']){
if($_POST['options'][0] == "" ){
header("Location: error.html");
exit;
}else{
$checked = $_POST['options'][0];
$_SESSION['checked'] = $checked;
}
}else{
if($_POST['options'] == "" ){
header("Location: error.html");
exit;
}else{
$checked = $_POST['options'];
$_SESSION['checked'] = $checked;
}
}
}
?>
如果你愿意,你可以清理这个
答案 1 :(得分:1)
您可以使用此示例代码
<?php
if($_POST) {
if(isset($_POST['state'])) {
if($_POST['state'] == 'NULL') {
echo '<p>Please select an option from the select box.</p>';
}
else {
echo '<p>You have selected: <strong>', $_POST['state'], '</strong>.</p>';
}
}
}
?>
和您的HTML代码
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<fieldset>
<legend>Please select a state</legend>
<select name="state">
<option value="NULL">-- Please select a state --</option>
<option value="AK">AK - Alaska</option>
<option value="AL">AL - Alabama</option>
<option value="WY">WY - Wyoming</option>
</select>
<input type="submit" name="submit">
</fieldset>
</form>
答案 2 :(得分:1)
在你的情况下,options []可用于将多个字段作为数组发送,索引以0开头,例如:
<input name="test[]"> : index 0
<input name="test[]"> : index 1
然后,您可以在$ _POST ['test']中获取这些值,如下所示:
$input_one = $_POST['test'][0];
$input_one = $_POST['test'][1];
如果你在$ _POST里看这个,它会是这样的:
$_POST = array (
...,
'test' => array(0=> ..., 1 => ...)
)
对于你的表单,如果你只有一个选项[],则值为$ _POST将是
if(isset($_POST['options'][0])){
}
答案 3 :(得分:0)
所以让我们把它清理干净
<select name="options">
您不需要选项[]。
然后$_POST['options']
的结果将是选项的值。然后添加<option value="0">Select</option>
,然后检查POSTed数据是否高于0
答案 4 :(得分:0)
in html
<select name="options">
<option value="0"></option>
<option value="1">1</option>
.
.
在php中
if(isset($_POST['options']) && !empty($_POST['options'])) {
$checked = $_POST['options'];
}