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

申し訳ありませんが、クラスが空の部屋に来たので、1時間待つ必要があることを投稿したので、すぐに返信することができません:/

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

あなたの場合、 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 => ...)
)

フォームの場合、options[] が 1 つしかない場合、値は $_POST になります

if(isset($_POST['options'][0])){

}
于 2013-02-28T12:56:51.880 に答える
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 に答える
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 に答える
0

じゃあ掃除しよう

<select name="options">

options[] は必要ありません。

そして、結果は$_POST['options']オプションの値になります。そこに追加して<option value="0">Select</option>、POSTedデータが0より大きいかどうかを確認します

于 2013-02-28T12:53:24.553 に答える