2013-07-16 4 views
0

У меня есть мобильная форма jQuery с отправкой данных в форму review.php. Когда нет данных, введенных в массив флажков (нет данных, необходимых от пользователя), проверка возвращаетФункция join(), если введенные данные

Предупреждение: join() [function.join]: Недопустимые аргументы, переданные в/hermes/waloraweb076/b2830/moo .revolveis/Hg/заказ/review.php на линии 35

Ниже приведен пример формы:

<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

Просто проверить $_REQUEST['grind51'] установлен ли, прежде чем пытаться join его. Ошибка вызвана тем фактом, что пустой возврат не является массивом (и не может быть соединен).

+0

Как я могу проверить, установлено ли это? Я все еще довольно простой на PHP. Спасибо, кстати. – Packy

+1

Как @SetSailMedia сказал в последней части своего сообщения. – Pieter

+2

Спасибо, что сделал трюк. Также спасибо @SetSailMedia. – Packy

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"]); 
} 
Смежные вопросы