通过ajax我要求一个php页面,它将从数据库中获取一些信息。当处理数据时,我将它们回显到某个标签,并通过JS我定位这些标签并获取它们的内容。这是我在php和JS之间传递数据的唯一方法,但我觉得它不太正确。什么是获取php变量值的最佳方法:
$var1 = 24515875;
进入JS变量?
答案 0 :(得分:1)
使用AJAX在PHP和JavaScript之间调用时,我建议您始终使用JSON(Javascript Object Notation)进行编码。
<?php
// Set Header (Always should be first commands just in case of thrown errors)
header('Content-type: application/json');
$data = array(
'message' => 'Hello World',
'error' => false
);
echo json_encode($data);
?>
对于javascript,您可以使用XMLHttpRequest。我不建议使用jQuery,除非你需要它用于脚本的其他方面。
function request(url,callback) {
var req = new XMLHttpRequest();
req.onreadystatechange = function() {
if(req.readyState == 4 && req.status == 200) {
var json = JSON.parse(req.responseText);
if(typeof callback === "function") {
callback(json);
}
}else{
// Handle Error
}
}
req.open("GET",url,true);
req.send();
}
function callback_func(json) {
// Function gets called when Ajax is finished
console.dir(json);
}
request("ajax.php",callback_func);
答案 1 :(得分:0)
我不知道以下建议是否过于复杂,但是: 您可以使用jQuery Ajax Get从PHP请求JSON数据。 这适用于传递数组,例如从数据库到客户端的结果集。
在PHP方面你会做一个简单的事情:
<?php
header('Content-type: application/json');
echo json_encode($myData);
?>
在JS方面,你可以通过以下方式访问它:
$.getJSON( "getjsondata.php", function( data ) {
alert(data);
// do whatever, like appending to html element
// next code section is the answer to your question from the comment:
// how to iterate over the data result set?
// create new DomElement for insertion: here foreach row a new list item
var items = [];
$.each( data, function( key, val ) {
items.push( "<li id='" + key + "'>" + val + "</li>" );
});
// then insert the list items into a UL and append that to the body
$( "<ul/>", {
"class": "my-new-list",
html: items.join( "" )
}).appendTo( "body" );
// to access the individual properties you would do
alert(data.property);
});