1

嘿,我在让 options[] 数组工作时遇到了一些麻烦,如果有人能提供帮助,那将是很棒的表格

<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/>";
    }
?>

抱歉,我现在无法回复人们,因为我发布了一个班级来到空房间,所以需要等待一个小时:/

4

5 回答 5

4

您需要将您的更改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;
    }
  }
}
?>

如果你愿意,你可以清理这个

于 2013-02-28T12:57:33.427 回答
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>
于 2013-02-28T12:52:29.113 回答
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])){

}
于 2013-02-28T12:56:51.880 回答
0

所以让我们把它清理干净

<select name="options">

您不需要选项[]。

然后的结果$_POST['options']将是选项的值。并在那里添加<option value="0">Select</option>,然后检查 POSTed 数据是否高于 0

于 2013-02-28T12:53:24.553 回答
0

在 HTML 中

<select name="options">
<option value="0"></option>
<option value="1">1</option>
.
.

在php中

    if(isset($_POST['options']) && !empty($_POST['options'])) {
      $checked = $_POST['options'];
    }
于 2013-02-28T12:56:21.147 回答