0

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

在我的代码中。

4

2 回答 2

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"]);
}
于 2013-07-16T22:08:36.253 回答
0

$_REQUEST['grind51']在尝试之前检查是否已设置join。导致错误的原因是空返回不是数组(并且无法连接)。

于 2013-07-16T22:09:39.233 回答