传递Implode的参数无效

时间:2013-08-05 23:35:51

标签: php forms implode

我有一个表单,我正在尝试连接此区域中传递的值:

<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']);

我理解它可能很草率,但我无法弄清楚为什么我在内爆函数上得到了无效的参数错误。

3 个答案:

答案 0 :(得分: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

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

希望这有帮助!

答案 1 :(得分:0)

如果你没有通过数组,

implode会发出警告。

我建议使用var_dump检查值是否正常:

var_dump($_POST['arrayValue']);

答案 2 :(得分:0)

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

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

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