#php #jquery #json #ajax
#php #jquery #json #ajax
Вопрос:
Я отправляю запрос ajax и ожидаю получить ответ json. Но в моем ответе у меня есть пустая строка и html-тег комментариев ( <!-- -->
). Как я могу удалить эту ненужную пустую строку и символы?
P.S: Это происходит, когда я размещаю веб-сайт онлайн.
$.ajax({
url: "edit_row.php",
method: "post",
data: {id:id},
success: function(data){
alert(data);
}
});
php:
<?php
$id = $_POST['id'];
$data = array();
-----
sql query
------
while($query = mysqli_fetch_assoc($sql)){
$data[] = $query;
}
print json_encode($data);
>?
Я ожидаю, что результат будет примерно таким:
[{"id":"1", "asd":"dsa",...}]
Но я получаю:
<!-- -->[{"id":"1", "asd":"dsa",...}]
Комментарии:
1.
>?
это неправильный способ обхода. Это только ошибка копирования и вставки? Возможно, у вас есть пробел перед открывающим тегом PHP2. Также я не могу найти разницу между ожидаемым и точным результатом, который вы получаете
3. Затем проверьте, есть ли у вас пробел / разрыв строки после любого закрывающего
?>
тега. В чистых PHP-файлах рекомендуется не закрывать PHP-теги (только по этой причине). Легко случайно добавить пробелы.4. это означает, что в вашем коде где-то вы вывели этот материал. Проверьте один раз. Также
?>
в конце вашего файла [как рекомендуется для решения проблемы с пустой строкой / пробелами]5. Вы всегда можете использовать headers_sent() перед выводом вашего json, чтобы отследить, где произошел предыдущий вывод.
Ответ №1:
если вы вообще отправляете var id и возвращаете пустой, то при успешном вызове ajax измените код.Это временное решение, но вам следует еще раз просмотреть код в HTML.
$.ajax({
url: "edit_row.php",
method: "post",
data: {id:id},
success: function(data){
data=data.replace("<!--","");
data=data.replace("-->","");
alert(data);
}
});
Ответ №2:
Вы должны проверить все файлы, которые включены в edit_row.php
файл, и убедиться <!-- -->
, что они не отображаются.
Тем не менее, вы сталкиваетесь с проблемой, можете ли вы предоставить edit_row.php
код.
Ответ №3:
Я не уверен, в чем ваша проблема, но важно всегда оборачивать свой php/code
скрипт вокруг оператора try and catch, чтобы получать ошибки и предупреждения php, если они есть, в вашем случае, например
<?php
try {
$id = $_POST['id'];
$data = array();
-----
sql query
------
while($query = mysqli_fetch_assoc($sql)){
$data[] = $query;
}
print_r(json_encode($data));
}
catch(Exception $e) {
echo 'Message: ' .$e->getMessage();
}
?>
Я также изменил ваш закрывающий тег php с >?
на ?>
на, хотя я не уверен, что это вызывает проблему. Также изменен print
на print_r, что лучше для удобства чтения массивов и объектов.