为什么我的价值只返回1个字母?

时间:2015-09-15 03:39:53

标签: php

<form action="process.php" method="post">
    <input type="text" name="name[]" placeholder="Player name"/>

    <select id="t-size" name="t-size">
        <option value="S">S</option>
        <option value="M">M</option>
        <option value="L">L</option>
        <option value="XL">XL</option>
        <option value="XXL">XXL</option>
        <option value="XXXL">XXXL</option>
    </select>
    <input type="submit" value="submit">
</form>

然后提交并发布到process.php

if(isset($_POST) == true && empty($_POST) == false) {
    $BX_NAME = $_POST['name'];  
    $BX_size=$_POST['t-size'];

    foreach($BX_NAME as $a => $b) { 
        echo $BX_NAME[$a];
        echo $BX_size[$a];
    }
}   

我这里有两个问题,

  1. 我得到的数据没有中断,所以我们说name=chico size=xxl我会得到"chicox"我需要将它们分开,
  2. 我的体型值,为什么我只得到第一个字母?它应该是xxl而不是x

2 个答案:

答案 0 :(得分:1)

如果有多个具有相同名称的输入,我们使用数组(name="name[]")来存储数据。所以在这里你不想只使用name="name"来创建它。

并在submit按钮中定义一个name

的属性
<input type="submit" value="submit" name="submit">

并在php代码中

if(isset($_POST['submit']))
{
    $bx_name = $_POST['name'];
    $bx_size = $_POST['t-size'];

    if(empty($bx_name) || empty($bx_size))
    {
        echo 'Input Fields are empty';
    }
    else
    {
        //no need to use foreach loop

        echo 'Player name is '.$bx_name;
        echo '<br/>';
        echo 'T-Shirt Size is '.$bx_size;
    }

}

答案 1 :(得分:0)

第一个问题,你必须在process.php上打破:

foreach($BX_NAME as $a => $b){ 
    echo "name = ".$BX_NAME[$a]."<br />";
    echo "size = ".$BX_size[$a]."<br />";
}

对于第二个,您必须将[]添加到PHP的大小名称,才能将其作为数组。您可以更改HTML:

<select id="t-size" name="t-size">

<select id="t-size" name="t-size[]">