Мой код (index.html)
<script>
$(document).ready(function() {
var interval = setInterval(function() {
$.get("load_txt.php", { 'var1': 4, 'var2' : 52},
function(data){ $('#msg').append(data); }, "json");
});
}, 1000);
});
</script>
<p id='msg'></p>
Мой код (load_txt.php)
<?php
$var1 = $_GET['var1'];
$var2 = $_GET['var2'];
$data = "var1= " . $var1 . " " . "var2= " . $var2;
echo json_encode($data);
?>
Это не работает, ничего не отображается в #msg. Вы видите какую-то ошибку? если да, пожалуйста, ответьте, спасибо 🙂
Вы на самом деле не возвращаете JSON. Ты бежишь через json_encode
без ключа, который просто возвращает вам строку. Затем он возвращается в jQuery, который ожидает JSON, поэтому, скорее всего, выдает ошибку при попытке десериализации простой строки.
Чтобы это исправить, измените код PHP так, чтобы он возвращал JSON:
echo json_encode(array('var1' => $var1, 'var2' => $var2));
И измените свой jQuery для чтения из десериализованного объекта:
var interval = setInterval(function() {
$.get("load_txt.php", {
'var1': 4,
'var2': 52
}, function(data) {
$('#msg').append(data.var1 + ' ' + data.var2);
}, "json");
}, 1000);
Также обратите внимание, что выполнение запросов AJAX с использованием setInterval
Это не очень хорошая идея, так как если запросы будут дольше, чем интервал, они будут складываться. Лучше использовать setTimeout
и сделайте новый запрос, когда предыдущий завершится:
function makeRequest() {
$.get("load_txt.php", {
'var1': 4,
'var2': 52
}, function(data) {
$('#msg').append(data.var1 + ' ' + data.var2);
setTimeout(makeRequest, 1000); // on success
}, "json");
}
makeRequest(); // on load
Это просто синтаксическая ошибка:
Этот код работает нормально:
$(document).ready(function() {
var interval = setInterval(function() {
$.get("load_txt.php", { 'var1': 4, 'var2' : 52},
function(data){ $('#msg').append(data); }, "json");
}, 1000);
});
; Обратите внимание, этот (**) кусок необходимо удалить:
$(document).ready(function() {
var interval = setInterval(function() {
$.get("load_txt.php", { 'var1': 4, 'var2' : 52},
function(data){ $('#msg').append(data); }, "json");
**});**
}, 1000);
});