我有一个jQuery移动表单,数据发布到review.php表单。如果在复选框数组中没有输入数据(用户无需数据),则审核返回
警告:join()[function.join]:第35行/hermes/waloraweb076/b2830/moo.revolveis/hg/order/review.php中传递的参数无效
以下是表格的示例:
<li data-role="fieldcontain">
<fieldset data-role="controlgroup">
<legend>Choose Grind:</legend>
<input type="checkbox" name="grind51[vgrind]" id="vgrind" class="custom" value="V-Grind">
<label for="vgrind">V-Grind</label>
<input type="checkbox" name="grind51[tourgrind]" id="tourgrind" class="custom" value="Tour-Grind">
<label for="tourgrind">Tour Grind</label>
<input type="checkbox" name="grind51[healgrind]" id="healgrind" class="custom" value="Heal-Grind">
<label for="healgrind">Heal Grind</label>
<input type="checkbox" name="grind51[nogrind]" id="nogrind" class="custom" value="No Grind">
<label for="nogrind">No Grind</label>
</fieldset>
</li>
以下是review.php的一个示例:
<?php
$grind51 = join(", ", $_REQUEST["grind51"]);
echo (!empty($_REQUEST['grind51'])) ? "<div class='reviewItem'><span class='reviewTitle'>51 Grind:</span>{$grind51}</div>" : "";
?>
如果为数组输入数据,则返回信息正常。如果没有输入信息,有没有办法不出错?顺便说一句,第35行属于
$grind51 = join(", ", $_REQUEST["grind51"]);
在我的代码中。
答案 0 :(得分:0)
您的PHP看起来不错,我会改变HTML:将元素名称设置为name[]
,以便填充常规(非关联)数组。
<li data-role="fieldcontain">
<fieldset data-role="controlgroup">
<legend>Choose Grind:</legend>
<input type="checkbox" name="grind51[]" id="vgrind" class="custom" value="V-Grind">
<label for="vgrind">V-Grind</label>
<input type="checkbox" name="grind51[]" id="tourgrind" class="custom" value="Tour-Grind">
<label for="tourgrind">Tour Grind</label>
<input type="checkbox" name="grind51[]" id="healgrind" class="custom" value="Heal-Grind">
<label for="healgrind">Heal Grind</label>
<input type="checkbox" name="grind51[]" id="nogrind" class="custom" value="No Grind">
<label for="nogrind">No Grind</label>
</fieldset>
</li>
在PHP中进行一些快速错误检查,以确保传入数组中的数据:
if ( isset( $_REQUEST['grind51'] ) && is_array( $_REQUEST['grind51'] ) ) {
$grind51 = join(", ", $_REQUEST["grind51"]);
}
答案 1 :(得分:0)
在尝试$_REQUEST['grind51']
之前,只需检查join
是否已设置。导致错误的原因是空返回不是数组(并且无法连接)。