Повторяю HTML в PHP - PullRequest
       28

Повторяю HTML в PHP

0 голосов
/ 19 февраля 2011

Привет, я хочу отобразить HTML, чтобы поместить переменные из mysql в тег ввода HTML, в частности, переключатель. У меня проблемы, он говорит, что ожидает запятую или точку с запятой.Вот мой код:

$result=mysql_query($sql);
$row = mysql_fetch_assoc($result);
 while($row = mysql_fetch_array($result)){
  echo "<input type="radio";
  echo "value=";
  echo "$row["cnumber"]";
      echo "/>";
      echo "$row["cname"]"; 
  echo "<br />";

Есть идеи, почему это не работает?

Ответы [ 8 ]

5 голосов
/ 19 февраля 2011

Такие вещи не будут работать:

  echo "<input type="radio";

Вы должны написать это так:

  echo "<input type=\"radio\"";

" - это специальный символ, вы должны поместить\ перед ним, если он находится внутри строки.

Напишите это:

$result=mysql_query($sql);
$row = mysql_fetch_assoc($result);
while($row = mysql_fetch_array($result)){
  echo "<input type=\"radio\" value=\"".$row['cnumber']."\" />".$row['cname']."<br />";
}

(не проверено, но должно работать?!).

2 голосов
/ 19 февраля 2011
echo '<input type="radio" value="'.$row["cnumber"].'" />'.$row["cname"].'<br />';

OR

echo "<input type='radio' value='{$row["cnumber"]}' />{$row["cname"]}<br />";

OR

echo "<input type=\"radio\" value=\"{$row["cnumber"]}\" />{$row["cname"]}<br />";

OR

echo '<input type=\'radio\' value=\''.$row["cnumber"].'\' />'.$row["cname"].'<br />';

ИЛИ

 while($row = mysql_fetch_array($result)){
 $html .= "<input type='radio' value='{$row["cnumber"]}' />{$row["cname"]}<br />";
 }

 echo $html;

OR

 while($row = mysql_fetch_array($result)){
 extract($row);
 $html .= "<input type='radio' value='{$cnumber}' />{$cname}<br />";
 }

 echo $html;

OR

 while($row = mysql_fetch_array($result)){
 extract($row);
 printf("<input type='radio' value='%s' />%s<br />", $row["cnumber"] , $row["cname"]);
 }
1 голос
/ 20 февраля 2011

Вы не можете использовать эхо, как это:

 echo "$row["cname"]";

Двойные кавычки в индексе массива интерпретируются как конец строки!

Hwr, если вы выводите только переменную, вам не нужны кавычки!

echo $row["cname"];

будет достаточно:)

1 голос
/ 19 февраля 2011

Не выводите HTML с PHP! (если вы можете избежать этого).

Труднее отлаживать HTML и больше подвержено ошибкам (как вы можете видеть).Вы также теряете поддержку в вашей среде IDE в отношении HTML.

Вместо этого вставляйте PHP в HTML:

<?php    
//...
$result=mysql_query($sql);
$row = mysql_fetch_assoc($result); // why are you doing this? 
                                   // this will skip the first row
?>
<?php while(($row = mysql_fetch_array($result))): ?>
   <input type="radio" value="<?php echo $row['cnumber']; ?>" />
   <?php echo $row['cname']; ?> 
   <br />
<?php endwhile; ?>

Ссылка: Альтернативный синтаксис для структур управления .


Комментарии к вашему коду: У вас здесь много кавычек:

echo "<input type="radio";
//   ^            ^     ^
//   └ start  end ┘     └ start
echo "value=";
//   ^      ^
//   └ end  └ start
//   etc

Подробнее о строках. Убедитесь, что вывсегда правильно сопоставлять кавычки.

1 голос
/ 19 февраля 2011

Вы очень не согласны с вашими цитатами. Первая строка, которая ломает скрипт - echo "<input type="radio"; - должна быть: echo '<input type="radio"';

1 голос
/ 19 февраля 2011

Вы цитируете строку в кавычках:

echo "$row["cname"]";

Просто сделайте это:

echo $row["cname"];
0 голосов
/ 28 апреля 2012
$result=mysql_query($sql);
$row = mysql_fetch_assoc($result);
    while($row = mysql_fetch_array($result)){ ?>
       <input name="test" type="radio" value="<?php echo $row['cnumber']; ?>" /><?php echo $row['cname']; ?><br />
<?php } ?>

Совет. Если вы хотите преобразовать HTML в PHP, просто скопируйте HTML-код после вставки в блокнот. Итак, вы вызываете команду replace и меняете "на \".

0 голосов
/ 19 февраля 2011
$result=mysql_query($sql);
$row = mysql_fetch_assoc($result);
 while($row = mysql_fetch_array($result)){
    echo "<input type='radio' ";
    echo "value=";
    echo $row["cnumber"];
        echo "/>";
        echo $row["cname"]; 
    echo "<br />";
  }

когда внутри эха есть кавычки, они должны отличаться от содержащихся кавычек

echo "<input type='hidden'>";

если кавычки содержат ", кавычки внутри этих кавычек должны быть одинарными кавычками: '

...