$.post('testeUpdate.php', 'autocomplete',
function(dadosResposta) {
$('#ns-nome').val(dadosResposta.nsName);
$('#ns-endereco').val(dadosResposta.nsAddress);
},
"json");
我正在努力理解这一点。所以,在我附近有jquery $ .post引用链接:
1)将post请求发送到testeUpdate.php,然后,我们可以传递一个名为'autocomplete'的字符串。精确?
问题1) 使用该字符串传递发布请求意味着我们可以稍后,例如, 通过具体指向条件请求的进程: $ _POST [ '自动完成']; ?
2) 后来,我们有一个“on success”回调函数接受一个参数dadosReposta。精确?
问题2) 这个dadosResposta可能来自我们的服务器端脚本?是 这是一个包含我们收到的数据的论据吗?
3)因此,一旦成功,我们想要做的是:用一些值填充一些输入元素。 VAL(dadosResposta.nsName);
问题3) 这种“点符号”是一种访问json格式数据的方式 - 或者这是像往常一样在DOM上行走的方式吗?是这样,那么json在这里扮演什么角色?
提前多多感谢, MEM
答案 0 :(得分:1)
isset($_POST['autocomplete'])
,虽然看起来你想在这里实际传递文本框值,因为自动填充通常依赖于你已经输入的内容。{ nsName: 'name', nsAddress: 'address' }
答案 1 :(得分:1)
1)是的,然后可以使用PHP以这种方式访问自动完成。 ($ _POST [ '自动完成'])。但除了它在isset()上显示的事实之外 - 它不会有任何数据。
2)是的,dadosResposta是将从服务器返回的响应。如果您在$ .post请求中将最后一个参数设置为json,则可以在javaScript中将其本身用作json对象。要以这种方式显示数据,您可以在PHP中使用json_encode()
3)一旦您的数据进入,您可以随心所欲。但点符号仅在json格式正确时才有效。参考:json.org
4)点符号是一种访问以json格式返回的数据的方式,与DOM无关。如果将$ .post的最后一部分更改为“text”,则从服务器返回的数据可以作为常规字符串处理。
答案 2 :(得分:1)
我在jsFiddle上使用了你的代码,并尝试建立在你拥有的东西上,你可以看到我将数据发送到jsFiddle上的json echo函数,它响应如下(可能......如果它的PHP) :
echo json_encode(array("post_response"=>$_POST));
正如您所看到的,我更改了postData以匹配您请求的响应,在服务器端,它通常在正常情况下看起来有点像这样:
if(isset($_POST['somedata']))
{
//do stuff... you know, whatever
echo json_encode(array("nsName" => $someString1,"nsAddress" => $someString2));
}