2013-03-29 1 views
-2

Строка 42 - это ошибка. Я не уверен, почему он говорит, что это не массив, а один раздел, но не удается найти массив в строке 42. Я попытался изменить строку на ($ _POST ['CINS'] как $ cNum => $ v) и ($ CINS как $ cNum => $ v). Любое понимание или помощь будут оценены.Не могу понять, почему массив задан, но массив равен нулю после обработки.

<?php 
$title = "fTest.php"; 
$action=$_SERVER['PHP_SELF']; 
include("html-head.inc"); 
echo <<<HEREDOC 
<header> 
<h1>$title</h1> 
</header> 
HEREDOC; 

if (!isset($_POST['submit'])) 
{ 
     echo "<form method=\"post\" action=\"$action\">"; 
$CINS = array('101' => "CINS101", 
       '108' => "CINS108", 
       '121' => "CINS121", 
       '251' => "CINS251", 
       '254' => "CINS254"); 
     echo "<p>Please pick your CINS classes:</p>"; 
     echo "<ul>\n"; 
foreach ($CINS as $key => $value) 
{ 
     echo "<li>"; 
     echo "<input type=\"checkbox\" name=\"CINSc\" value=\"$value\"/>CINS$key" ; 
     echo "</li>\n"; 
}     
     echo "</ul>\n"; 
     echo "<input type=\"reset\" name=\"reset\" value\"Reset\" />"; 
     echo "<input type=\"submit\" name=\"submit\" value\"Submit\" />"; 
     echo "</p>"; 
echo is_array($CINS) ? 'Array' : 'Not an array'; 
echo "\n"; 
     echo "</form>"; 
} // ends IF PORTION for ISSET 
else  
{   
if (count($_POST['CINS'] > 0)) 
{   
     echo "<h2> Your picks are: </h2>\n"; 
     echo "<ul>\n"; 
echo is_array($CINS) ? 'Array' : 'Not an array'; 
foreach ($_POST['CINS'] as $cNum => $v) //This is the error. 
{ 
     echo "\t<li>$v</li>\n"; 
} // end of FOREACH cins 
     echo "</ul>\n"; 
} // end of IF count CINS 
} // end of ELSE portion for ISSET 
?> 
+1

Вы можете вставить массив здесь print_r ($ _ POST ['CINS']); –

+0

Единственное, что возникает, это ошибка недопустимого аргумента – Nick

ответ

3

Ваше имя Флажок хотел бы ниже, чтобы рассмотреть его как массив

<input type="checkbox" name="CINS[]" value = "1" /> 
+0

Соглашение об именах не имеет ничего общего с '$ _POST', которое обрабатывается как массив. –

+0

@aguyfromhere: это нормально для '$ _POST'. как насчет '$ _POST ['CINS']'? – Nauphal

+0

@aguyfromhere http://www.php.net/manual/en/faq.html.php#faq.html.arrays –

0

<input> имя является массивом, и я нашел запасной </p>, который не должен быть там.

Ваш стиль кодирования вызовет много голов. Я немного почистил его, я думаю, что этот стиль будет намного легче справиться.

<?php 
$title = "fTest.php"; 
$action=$_SERVER['PHP_SELF']; 
include("html-head.inc"); 
?> 

<header> 
<h1><?=$title?></h1> 
</header> 

<?php if (!isset($_POST['submit'])): ?> 
    <?php $CINS = array('101' => "CINS101", 
         '108' => "CINS108", 
         '121' => "CINS121", 
         '251' => "CINS251", 
         '254' => "CINS254"); ?> 
    <form method="post" action="<?=$action?>"> 
     <p>Please pick your CINS classes:</p> 
     <ul> 
     <?php foreach ($CINS as $key => $value): ?> 
      <li> 
      <input type="checkbox" name="CINS[]" value="<?=$value?>" />CINS<?=$key?> 
      </li> 
     <?php endforeach; ?> 
     </ul> 
     <input type="reset" name="reset" value"Reset" /> 
     <input type="submit" name="submit" value"Submit" /> 
     </p> <!-- THIS TAG IS EXTRA WHERE DID IT COME FROM --> 
     <?= is_array($CINS) ? 'Array' : 'Not an array' ?> 
    </form> 
<?php else if (count($_POST['CINS'] > 0)): ?> 
    <h2>Your picks are: </h2> 
    <ul> 
    <?= is_array($CINS) ? 'Array' : 'Not an array' ?> 
    <?php foreach ($_POST['CINS'] as $cNum => $v): ?> 
     <li><?=$v?></li> 
    <?php endforeach; ?> 
    </ul> 
<?php endif; ?> 
+0

Честно говоря, я не совсем уверен, где этот тег пришел. Думал, что я понял это. но спасибо за это. – Nick

+0

Вы нашли решение этой проблемы? –

 Смежные вопросы

  • Нет связанных вопросов^_^