<?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:
;
$_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;