Обратный вызов Javascript $.getJSON и передача параметров

В настоящее время у меня есть вызов $.getJSON, который работает нормально, как показано ниже.

var jsonUrl = "http://www.somesite.co.uk/jsonusv.php?callback=?";                   
$.getJSON(jsonUrl,function(zippy){
...some code
}

Однако я хочу передать с ним переменную, чтобы PHP-скрипт мог использовать ее значение $_GET[''] и адаптировать данные.

Я устал дурачиться, но не мог заставить все работать какие-нибудь идеи?

var jsonUrl = "http://www.somesite.co.uk/jsonusv.php?callback=?&value=65";

Страница php выглядит примерно так, она была урезана. Я пытался обнаружить $_GET['value'], но это не сработало.

<?PHP
header("content-type: application/json");  
$theSqlquery = "SELECT * FROM table ORDER BY timestamp DESC LIMIT 20";   
$result131 = mysql_query($theSqlquery);

     if ($result131)
     {

        //make up Json string in $temp

    echo $_GET['callback'] . '(' . $temp . ');';
     }                 
?>

person DevilCode    schedule 29.11.2012    source источник
comment
Привет, Бехнам Эсмаили, я не понимаю твоего вопроса.   -  person DevilCode    schedule 29.11.2012
comment
я отправил ответ.проверить.   -  person Behnam Esmaili    schedule 29.11.2012
comment
Пробовали ли вы использовать другое имя для значения... ваш код jQuery/JS работает просто отлично. Однако, может быть, есть проблема с использованием значения в качестве имени ключа (в PHP)?   -  person Joe Johnson    schedule 29.11.2012
comment
возможно, это может помочь вам stackoverflow.com/questions/6555172/   -  person Ivaylo Nikolov    schedule 08.08.2013


Ответы (3)


Я бы предложил удалить callback=? из вашего jsonUrl

person bluetoft    schedule 29.11.2012
comment
строка запроса URL-адреса начинается с ?. Если вы проверяете свойство «обратный вызов» и хотите передать пустое значение, просто оставьте ?callback=&value=65. Я полагаю, что ваша строка запроса как бы поднята со знаком вопроса посередине. - person bluetoft; 03.12.2012

Попробуйте передать свои параметры в параметр data вызова функции вместо строки запроса:

var jsonUrl = "http://www.somesite.co.uk/jsonusv.php";
$.getJSON(jsonUrl, {
    callback: "your callback val",
    value: "65",
  },
function(zippy){
...some code
});

http://api.jquery.com/jQuery.getJSON/

Затем вы можете получить к ним доступ с помощью $_POST

Обратите внимание, что echo отправляет предполагаемый результат json обратно вашему вызову метода $.getJSON(), например, success(), если он был успешным. Если вы знаете имя метода js в методе success() и вам нужно передать его только $temp, попробуйте это

var jsonUrl = "http://www.somesite.co.uk/jsonusv.php";
$.getJSON(jsonUrl, {
    value: "65"
  },
function(zippy){
    callbackMethod(zippy[0]);
});

и в вашем php

$output = array();
$output[0] = $temp;
echo json_encode($output);
person Nick Rolando    schedule 29.11.2012
comment
но он хочет получить к нему доступ с помощью $_GET. - person Behnam Esmaili; 29.11.2012
comment
Я в порядке с POST, но ваш метод без callback=? в URL вызывает Access-Control-Allow-Origin. - person DevilCode; 03.12.2012
comment
Кроме того, это все еще GET не публикуется. - person DevilCode; 03.12.2012

var jsonUrl = "http://www.somesite.co.uk/jsonusv.php?callback=?";                   
$.getJSON(jsonUrl,{lastdatetime: "",},function(zippy){....

Вроде работает...

person DevilCode    schedule 04.12.2012