我在飞行中使用ajax / jquery来获取我的东西。我可以正确地使用我的下面的代码。我读了两个参考文献。但凭借我自己的榜样,我会感激不尽。 这是我的代码:
var a = JSON.parse(json);
$.post('movies_db.php',{'myd':a}, function(data)
{
$.ajax({
url:'url.php'
,async: true
,cache: false
,dataType: 'html'
,success: function(data){
$('body').html(data);
FB.XFBML.parse();
}
});
});
有人可以在技术层面上作业或ajax / jquery吗? $.post('movies_db.php',{'myd':a}, function(data)
需要注意。
如果我想在这里发送多个值,如$ x,$ y,$ z,该怎么办?
只需{'myd':$x, $y,$z}
就够了吗?
答案 0 :(得分:1)
"What if I want to sent multiple values here like $x, $y, $z. Just {'myd':$x, $y,$z} is enough?"
NO。您需要发送如下所示的键值对:
{'myd':$x, 'y': $y, 'z': $z}
为什么你需要下线?我不确定。下面的行将json转换为对象,并将对象作为param传递给ajax调用。我认为你可以直接传递json而不解析,然后在服务器端对其进行解码以获取值:
var a = JSON.parse(json);
在服务器端,您可以使用
从json获取对象json_decode($yourGetParam);
要将json转换为数组,请将第二个参数添加为true:
$myarray = json_decode($yourGetParam, true);
答案 1 :(得分:1)
好的,不要听起来很苛刻,但首先让我们格式化您的代码,以便我们可以阅读它:)
var a = JSON.parse(json);
$.post('movies_db.php',{'myd':a}, function (data) {
$.ajax({
url: 'url.php',
async: true,
cache: false,
dataType: 'html',
success: function (data) {
$('body').html(data);
FB.XFBML.parse();
}
});
});
因此,您$.post
将变量a
中的数据movies_db.php
发送到a
。 $_POST['myd']
中的数据将在您的服务器上显示为{'myd':a}
。
如果要发送更多值,则需要向{'myd':a, 'other_data': some_var}
中传递的对象添加更多键。例如:
$x
您的示例是$y
,$z
和$.post
,但这不是PHP,除非您想在页面呈现时打印这些值。
接下来,当function (data)
请求完成后,它会调用$.ajax
回调,然后您会发送另一个html
请求。在第二个请求中,您没有发送任何数据,您只是根据事物的外观加载body
。然后,您将该HTML插入到文档的$.ajax
标记中。
AJAX意味着“异步javascript和xml”,这是一个可以加载任何类型内容的可怕名称。当您致电GET
时,您正在向服务器发出HTTP POST
请求,您可以为此传递任何您喜欢的数据。正如ps2goat所提到的,您还可以在“常规”$.ajax
请求中将$.post
指定为请求类型。
POST
是一个HTTP XMLHTTPRequest
请求,它也会发送数据,但在幕后以不同的方式发送。您通常以这种方式上传文件或发布表单数据。我们使用“AJAX”的事实意味着我们正在使用浏览器的内置function
方法(再一次,这是一个可怕的名字)。
由于javascript是异步的,因此您需要指定一个回调(您的function
)来处理您的通话响应。显然,您的error
将被传递回复的结果。如果请求中存在错误,则会使用您尚未指定的{{1}}回调进行处理。
我希望这会让你走上正轨。
亚伦
答案 2 :(得分:1)
您正在使用post request在myd变量中发送json对象a
。
包含ajax请求$.ajax({...})
的函数是发布请求success
的{{1}}函数。
ajax请求成功后,会以指定的格式发送数据。在这种情况下,它被指定为$.post('movies_db.php'....)
。此html响应html
用于替换文档正文标记的内容。
data
使用数组
What if I want to sent multiple values here like $x, $y, $z. Just {'myd':$x, $y,$z} is enough?
OR 直接将数组设置为myd变量var a = JSON.parse("[x,y,z]"); {'myd':a}
的值
您必须在服务器端处理此数组,因为它将传递到单个参数{'myd':[$x, $y,$z]}
。