2015-05-20 3 views
0

У меня есть PHP-файл с именем terminal_tester.php, который проходит ряд терминальных действий и создает данные JSon в конце, используяданных Получение PHP JSON через AJAX - правильная структура запроса данных

echo json_encode($jsonData); 

Данные выглядит это

{"source":"Betting Tips","published":"2015-05-20 15:20:22;","status":true,"eventIDs":["27448131","27448900"],"TipsTB":"TIP 1 MLADENOVIC TO BEAT RISKE\",\"TIP 2 DOLGOPOLOV TO BEAT GULBIS\"]","TipsTW":"[]"} 

Теперь я хочу, чтобы заполнить мой HTML-файл с этими данными, но у меня возникают проблемы с пониманием правильный формат для ввода данных Ajax. Я пытаюсь использовать ниже в области скрипта моего html-файла

function callbackData(){ 
    return $.ajax({ 
     dataType: 'JSON', 
     url: 'terminal_tester.php', 
     type: 'GET', 
     cache: false, 
     data: jsonData 
    }); 
}; 

callbackData().success(function (data) { 
    document.getElementById("phpReturn2").innerHTML = jsonData 
    document.getElementById("phpReturn3").innerHTML = eventIds 
    document.getElementById("phpReturn4").innerHTML = published 
}); 

но я не получаю никакого ответа. Я искал, и я думаю, что проблема заключается в области данных: область запроса ajax, но я также смущен необходимостью команды GET в файле PHP. Может ли кто-нибудь объяснить, как правильно структурировать запрос ajax?

EDIT

terminal_tester.php имеет довольно много функций, которые приходят вместе в конце, чтобы построить данные JSon, финальная часть файла PHP выглядит следующим образом

 $jsonData = createJson($eventIds, $TipsTB, $TipsTW, $status); 
     echo json_encode($jsonData); 
     $fp = fopen('results.json', 'w'); 
     fwrite($fp, json_encode($jsonData)); 
     fclose($fp); 
+0

какой код написан в terminal_tester.php – mohit

+0

Я отредактирую вопрос, чтобы показать его ... –

ответ

2

Во-первых, я думаю, что данные вашего json неверны. Это должно быть как this-

{"source":"Betting Tips","published":"2015-05-20 15:20:22","status":true,"eventIDs":["27448131","27448900"],"TipsTB":["TIP 1 MLADENOVIC TO BEAT RISKE","TIP 2 DOLGOPOLOV TO BEAT GULBIS"],"TipsTW":"[]"} 

Во-вторых, синтаксис нормальный JQuery Ajax является -

$.ajax({ 
    dataType: 'JSON', //This means data which come back from terminal_tester.php should be in json format. 
    url: 'terminal_tester.php', 
    type: 'GET', // If you are using get request then you should get data by $_GET[] 
    cache: false, 
    data: {"jsonData":jsonData}, // Edited this from your code. 
    success:function(data){ //This data is coming from terminal_tester.php 
     alert(data.result); 
    } 
}); 

В terminal_tester.php, она должна быть как this-

if(isset($_GET['jsonData'])){ 
    $jsonData = $_GET['jsonData']; // GET array (Edited) 
    // your operation with $jsonData 

    // In the end, below json will be get in success data. 
    echo json_encode(array('result'=>true)); 

} 

Надежда это поможет вам!

+0

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

+0

Hi mohit, я скопировал и вставлял как javascript, так и php в свои файлы, но предупреждение не срабатывает, когда я обновляю HTML-страницу. Когда я запускаю php-файл сам по себе, он не повторяет данные json, из-за чего я полагаю, что if (актив ($ GET ['jsonData']) не срабатывает как истина. Я все еще немного смущен, почему он не работает ... Спасибо –

+1

Во-первых, вы используете jquery libary? Во-вторых, раскомментируйте 'dataType:" JSON "' и 'alert (data)', чем проверьте, что произойдет. Это должна быть одна строка json. Если html идет с json-строкой, вам нужно написать код isset в верхней части файла. Я отредактировал строку json_decode. – mohit

0

$. ajax(). success() имеет параметр данных для доступа к данным, отправленным обратно из вашего запроса GET. eventIds и опубликованные - оба свойства данных.

callBackData().success(function (data) { 

    document.getElementById("phpReturn2").innerHTML = jsonData; 
    document.getElementById("phpReturn3").innerHTML = data.eventIds; 
    document.getElementById("phpReturn4").innerHTML = data.published; 
}); 
+0

Так что мне нужна строка запроса GET в файле php ..? Я где-то видел, что вместо этого работал echo json_encode ....? –

Смежные вопросы