Ошибка при echo $ _GET

<?php $query = mysql_query("Select id, name From table"); while($row = mysql_fetch_array($query)) { echo $_GET["jsoncallback"] . '(<option value='.$row['id'].'>'.$row['name'].'</option>)'; } ?> 

Когда я эхо результат, это ошибка, как ее исправить?

Поскольку вы не писали точно, что вы пытаетесь сделать, я предполагаю, что вы пытаетесь вернуть список параметров HTML, которые функция обратного вызова JS будет размещать в вашем документе.

попробуй это:

 <?php $options = ''; $query = mysql_query("Select id, name From table"); while ($row = mysql_fetch_array($query)) { $options .= '<option value="'.$row['id'].'">'.$row['name'].'</option>' . "\n"; } echo $_GET["jsoncallback"] . "('" . $options . "');"; ?> 

Сначала будут созданы все параметры в виде строки и только затем будет построена обратная связь.

Вы не говорите, где ошибка, но, по-видимому, она находится в JS:

  1. Завершите свои заявления с помощью ;
  2. Сгенерировать действительные JS. Вы не можете просто засунуть кучу HTML в вызов функции JS. Вам нужен какой-то объект JavaScript. json_encode будет генерировать объект или массив. Или вы могли бы построить строку, но избегая символов со специальным значением, заменяя новые строки и цитируя значение.
  3. Убедительность проверяет ваши данные $_GET чтобы убедиться, что они соответствуют синтаксису имен функций JS.

О, я вижу, вы отметили это как JSON-P, в этом случае:

encode_json единый объект со всеми данными, преобразуйте его в JSON с помощью encode_json , а затем оберните все это с помощью обратного вызова (и) ;. Не вызывайте обратный вызов несколько раз в цикле while.

Вы уверены, что установлен jsoncallback? Попробуйте следующее:

 <?php $jsoncallback = isset($_GET["jsoncallback"])? $_GET["jsoncallback"] : ""; $query = mysql_query("Select id, name From table"); while($row = mysql_fetch_array($query)) { echo $jsoncallback . '(<option value='.$row['id'].'>'.$row['name'].'</option>)'; } ?> 

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

 <?php if(isset($_GET['jsoncallback'])) { $query = mysql_query("Select id, name From table"); while($row = mysql_fetch_array($query)) { echo $_GET["jsoncallback"] . '(<option value='.$row['id'].'>'.$row['name'].'</option>)'; } } else echo "Jsoncallback not set."; ?> 

$_GET обычно не возвращает ошибки. Возможная ошибка – ваш запрос.

Вставить

 echo mysql_error(); 

перед вашим циклом while;