Текстовое поле не добавляется в массив в цикле while - PullRequest
1 голос
/ 07 августа 2011

У меня есть 2 столбца на моей странице add_membership. Левый столбец «Членство добавлено», а правый столбец «Членство тоже добавлено».

Код для представления «членства для добавления»:

$credit=mysql_query("SELECT * FROM credit");
while($rowc=mysql_fetch_assoc($credit)){
$credit_id=$rowc['credit_id'];
if(in_array($credit_id, $_SESSION['pa']))
{}else{
$url_log=$rowc['logo_url'];
$name=$rowc['name'];
?>
<form action="#" method="post">
<div class="text_right"><input type="submit" value="Add" 
name="asubmit" class="search_input_submit" /></div>
<?php echo  "<img src='$url_log' width='50' height='50' alt='$name' title='$name'>"; ?>
<input type="checkbox" value="<?php echo $credit_id; ?>" name="credit_id" />
<strong><?php echo $name; ?></strong><br />
Membership Number:<input type="text" name"membership">
</form><br /><br />
<?php
}
}
?>

Как вы видите ввод номера участника.

Это код, который я пытался получить, чтобы добавить номер участника:

<?php 
if($_POST['asubmit']){
$credit_id_add=$_POST['credit_id'];
$membership=$_POST['membership'];
mysql_query("INSERT INTO accreditation VALUES(NULL, $lid, $credit_id_add, 
'$membership','0' )");
echo $membership ;
$credit_id_add=null;
$referer = $_SERVER['HTTP_REFERER'];
echo "<meta http-equiv='refresh' content='1; url=$referer'> ";  
}
?>

У меня есть 'echo'd' переменные, которые мне нужно сохранить, и все они появляются, кроме «Членства», поэтому возникает ошибка, потому что она пытается найти значение $ members.

В верхней части кода мне пришлось включить идентификатор кредита в флажок, поскольку мне кажется, что он не работает, просто повторяя запрос $ _POST или помещая его в скрытый текстовое поле.

Любой свет, пролитый на это, был бы очень признателен.

Заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 07 августа 2011

Вам не хватает = в вашем HTML:

<input type="text" name"membership">

должно быть:

<input type="text" name="membership">
1 голос
/ 07 августа 2011

Если используется первый блок кода, вы также не закрываете условие else:

else{
$url_log=$rowc['logo_url'];
$name=$rowc['name'];
?>

Должно быть:

else {
    $url_log = $rowc['logo_url'];
    $name = $rowc['name'];
}
?>

Также должен быть } перед закрывающим тегом PHP, чтобы закрыть цикл while. Я не уверен, что это было пропущено при копировании / вставке с вашей страницы, но если это в вашем коде, исправление поможет.

Как это:

<?php
  $credit = mysql_query("SELECT * FROM credit");
  while ($rowc = mysql_fetch_assoc($credit)) {
      $credit_id = $rowc['credit_id'];
      if (!in_array($credit_id, $_SESSION['pa'])) {
          $url_log = $rowc['logo_url'];
          $name = $rowc['name'];
      }
  }
?>
0 голосов
/ 08 августа 2011

Общий совет:

Вместо того, чтобы делать

if (some condition you only need when it's false) {
} else {
   ... do stuff here ...
}

просто напишите

if (!some condition...) {
   ... do stuff here ...
}

Обратите внимание на !, который является логическим отрицанием, иначе говоря "нет". Это делает гораздо более очевидным, что вы хотите иметь дело только с «ложными» условиями, а не просто забыли заполнить «истинную» часть.

...