2012-04-07 8 views
1

Я пытаюсь эхо значения в форме, основанной на количестве строк, возвращаемых из запроса базы данных. Продолжайте получать ошибку Parse error: синтаксическая ошибка, неожиданный T_ECHO, ожидающий ',' или ';'echo variable в форме html

Как вы, вероятно, можете сказать, что я довольно новичок в этом. Может ли кто-нибудь помочь мне повторить переменную? Я знаю, что $ num_rows возвращает значение, используя var_dump-шоу. Благодаря

<? 

if($num_rows <= 10) { 

echo '</br></br><form id="h1" class="rounded" action="4.php" target="" 
method="post"/> 
<input type="submit" name="submit" class="button" value="10" /><br> 
<input type="text" name="number_of_tests" value="'echo $num_rows;'"/> 
</form>'; 
} 
if($num_rows >10) { 
echo '</br></br><form id="h2" class="rounded" action="4.php"  
target="_blank" method="post"/> 
<input type="submit" name="submit" class="button" value="11"/><BR> 
<input type="text" name="number_of_tests" value="'echo $num_rows;'"/> 

</form>'; 
}?> 
+2

Всякий раз, когда вы получаете синтаксические ошибки, которые вы не понимаете, то первое, что нужно сделать, чтобы начать удаление (или закомментировать) биты кода до тех пор, пока сообщение не исчезнет. Последнее, что вы удалили, вероятно, стало причиной проблемы. –

+0

Кроме того, синтаксический анализатор сообщает вам, где * он встречает синтаксическую ошибку (исходный файл, номер строки и описание ошибки) – Raffaele

+0

парсер идентифицирует ошибку в строке 40, которая является моим эхом $ num_rows. Все еще не понимая, почему value = "'echo $ num_rows;'" не работает внутри эхо-формы ...? – user1022772

ответ

2

В обоих блоках кода вы повторите эхо-команду вместо того, чтобы конкатенировать вывод или использовать два оператора. Вы сделали это:

echo '</br></br><form id="h1" class="rounded" action="4.php" target="" 
method="post"/> 
<input type="submit" name="submit" class="button" value="10" /><br> 
<input type="text" name="number_of_tests" value="'echo $num_rows;'"/> 
</form>'; 

который является ошибкой синтаксиса. Вместо этого, вы можете сделать это:

echo '</br></br><form id="h1" class="rounded" action="4.php" target="" 
method="post"/> 
<input type="submit" name="submit" class="button" value="10" /><br> 
<input type="text" name="number_of_tests" value="' . $num_rows . '"/> 
</form>'; 

или это:

echo '</br></br><form id="h1" class="rounded" action="4.php" target="" 
method="post"/> 
<input type="submit" name="submit" class="button" value="10" /><br> 
<input type="text" name="number_of_tests" value="'; 
echo $num_rows . '"/>'; 
echo '</form>'; 
+0

Это сработало. Благодарю. Меня смутило. Все еще не уверен, что я понимаю, как это работает, если я честен! – user1022772

+0

echo some_string. some_string. some_string; позволено. Что не добавляет еще одного эха в конец. Одно эхо - это все, что вам нужно. –

1

Это код, который вы должны использовать для конкатенации строк и вывод результата

echo ' some value ' . $variable . ' other text '; 

echo функции выводит строку, в то время как точка (.) Объединяет строку оператора. Это своего рода неправильный код

echo 'value="'echo $num_rows;'"/>'; 

Если вы хотите, чтобы вставить значение переменной это путь

$a_string = 'I\'m a string'; 
echo "I'm a double quoted string and can contain a variable: $a_string"; 

Это работает с массивами слишком

$an_array = array('one', 'two', 'three'); 
echo "The first element of the array is {$an_array[0]}" 

Престол the PHP manual