Передача переменных PHP через Jquery AJAX - PullRequest
4 голосов
/ 18 апреля 2011

Я пытаюсь изучить функцию JQuery AJAX, но пытаюсь понять, как передать переменные PHP в мой основной документ.

Это то, что у меня сейчас есть:

<script>
  var refreshId = setInterval(function() {
    $.ajax({
      url: "test.php",
      dataType: "json", //the return type data is jsonn
      success: function(data){ // <--- (data) is in json format
        $('#testdiv').html(data.test1);
        $('#testdiv').append(html(data.test2));
        //parse the json data
      }
    });

}, 1000);
</script>

Ответы [ 5 ]

5 голосов
/ 18 апреля 2011

Вы должны использовать формат json или xml, проанализировать его и получить переменную.

<script src="jquery.js"></script>
<script>
    $.ajax({
      url: "test.php",
      dataType: "json", //the return type data is jsonn
      success: function(data){ // <--- (data) is in json format
        alert(data.test1);
        //parse the json data
      }
    });
</script>

на test.php

<?php

$test = array();
$test['test1'] = '1';
$test['test2'] = '2';
$test['test3'] = '3';

echo json_encode($test);
//echo nothing after this //not even html
1 голос
/ 18 апреля 2011

использовать dataType = 'json' в опции ajax для index.php

и test.php использовать json_encode

$ret_array= array ($test1, $test2 and $test3);
echo json_encode($ret_array);

снова на index.php

теперь, если вы хотите использовать его в вашем файле * J * S, тогда доступ через навигацию по объектамили используя getJSON метод

, и если вы хотите использовать эти данные непосредственно в php , тогда используйте json_decode

json_decode($ret_array,true);

Ссылки

json_encode
getJSON
json_decode

1 голос
/ 18 апреля 2011

Другой подход (с ajax, но скрытым полем) будет:

$.ajax({
    type: 'POST',
    url: "test.php",
    dataType: "json", //the return type data is jsonn
    success: function(data){ // <--- (data) is in json format
        $('#testdiv').html('<input type="hidden" value="' + data.test1 + '" />');
    }
    error: ajaxError,
    dataType: "html"
});

С этим внутри вашей формы вы можете даже использовать свое значение в следующем постбэке, не передавая его напрямую.

0 голосов
/ 18 апреля 2011

Вы не передаете их в index.php, но вы можете добавить их как контент, загружаемый вашим ajax, примерно так:

$test1 = '1';
$test2 = '2';
$test3 = '3';

echo $test1 . "<br/>" . $test2 . "<br/>" . $test3 . "<br/>";
0 голосов
/ 18 апреля 2011

Если я не сильно ошибаюсь, его так просто, как:

<?php
  include 'test.php';
?>

Чтобы включить файл test.php в index.php

Затем вы можете вызывать их, как если бы они были переменными, установленными в index.php, тогда я бы сделал следующее, чтобы получить их в jQuery:

$ ("# test1") и т. Д. *

Обновление

У меня проблема в том, что переменные в test.php будут меняться постоянно, и тогда это должно быть обновлено на index.php. Я только их выставил как 1, 2 и 3, чтобы проверить это. - user683526 1 мин. назад

В этом случае установите их в функцию и верните значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...