如果输入数据,则为join()函数

时间:2013-07-16 22:02:55

标签: php forms

我有一个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"]);

在我的代码中。

2 个答案:

答案 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是否已设置。导致错误的原因是空返回不是数组(并且无法连接)。