1

我有一个表格,我试图连接在这个区域传递的值:

<div class='span5' style='margin-left:0px !important;'>
    <label>
        <input type="checkbox" name="arrayValue[]" id="area[0]" value="Sparks"
        style='margin-top:-5px !important;'>Sparks</label>
</div>
<div class='span5' style='margin-left:0px !important;'>
    <label>
        <input type="checkbox" name="arrayValue[]" id="area[1]" value="Stead"
        style='margin-top:-5px !important;'>Stead</label>
</div>
<div class='span5' style='margin-left:0px !important;'>
    <label>
        <input type="checkbox" name="arrayValue[]" id="area[2]" value="North Reno"
        style='margin-top:-5px !important;'>North Reno</label>
</div>

这是我的 PHP,它试图将这些值放在一起......

$arrayValue = array();
$areas = implode("," , $_POST['arrayValue']);

我知道这可能很草率,但我无法弄清楚为什么我在 implode 函数上收到无效参数错误。

4

3 回答 3

2

错误是因为$_POST['arrayValue']不存在。如果没有选中任何框,就会发生这种情况。

您的表单缺少<form>标签并且没有提交按钮。没有这些元素,它就行不通。

此外,您正在$arrayValue = array();代码中声明一个数组。我认为这里没有必要。如果您只是想获取输入值并将它们连接在一起,则不需要。由于我不确定您打算如何处理它,因此我在回答中忽略了这一点。

我在下面包含了一个工作演示,这可能会让你开始。


完整代码:

<?php
if( isset($_POST['submitButton']) ){
    $areas = implode("," , $_POST['arrayValue']);
    print_r($areas);
}
?>
<form action="" method="post">
<div class='span5' style='margin-left:0px !important;'>
     <label>
         <input type="checkbox" name="arrayValue[]" id="area[0]" value="Sparks" style='margin-top:-5px !important;'> Sparks
     </label>
</div>    

<div class='span5' style='margin-left:0px !important;'>
    <label>
        <input type="checkbox" name="arrayValue[]" id="area[1]" value="Stead" style='margin-top:-5px !important;'> Stead
    </label>
</div>             

<div class='span5' style='margin-left:0px !important;'>
    <label>
        <input type="checkbox" name="arrayValue[]" id="area[2]" value="North Reno" style='margin-top:-5px !important;'> North Reno
    </label>
</div>  
    <input type="submit" name="submitButton"/>

</form>

输出:

Sparks,Stead,North Reno

上面的代码使用一个空动作,因此发布到它自己。您需要根据自己的要求进行更改。

希望这可以帮助!

于 2013-08-05T23:39:10.730 回答
0

如果您不传递数组,内爆将引发警告。

我建议使用 var_dump 检查值是否符合您的预期:

var_dump($_POST['arrayValue']);
于 2013-08-05T23:38:34.933 回答
0

implode期望将数组传递给函数。没有时会发生什么$_POST['arrayValue']?您必须确保变量存在:

if(isset($_POST['arrayValue'])){
    $areas = implode("," , $_POST['arrayValue']);
}

注意:我不确定您打算在哪里实施$arrayValue,因此在此答案中已将其丢弃。

于 2013-08-05T23:41:35.490 回答