帮助理解jQuery $ .post- w/ code示例
题
$.post('testeUpdate.php', 'autocomplete',
function(dadosResposta) {
$('#ns-nome').val(dadosResposta.nsName);
$('#ns-endereco').val(dadosResposta.nsAddress);
},
"json");
我试图理解这一点。因此,我附近有jQuery $ .post参考链接:
1) 然后,将邮政请求发送到testeupdate.php,然后,我们可以传递一个名为“自动完成”的字符串。精确的?
问题1) 通过该字符串传递邮政请求,这意味着我们以后可以通过专门指向以下条件:$ _post ['autocomplete']来处理该请求。 ?
2)后来,我们有一个“成功”回调函数接受参数,dadosreposta。精确的?
问题2)这个dadosresposta可能来自我们的服务器端脚本吗?这是有我们收到数据的论点吗?
3) 因此,关于成功,我们要做的是:填充一些具有某些值的输入元素。 val(dadosresposta.nsname);
问题3)该“点符号”是访问JSON格式数据的一种方法吗?还是我们像平常一样在DOM上行走的一种方式?那么,JSON在这里扮演什么角色?
非常感谢,mem
解决方案
1) 是的,然后可以使用PHP访问自动完成。 ($ _POST ['autoComplete'])。但是,除了它将在isset()上显示为true的事实 - 它不会有任何数据。
2) 是的dadosresposta是将从服务器返回的响应。如果您将最后一个参数设置为$ .post请求上的JSON,则可以在JavaScript中本地用作JSON对象。要以这种方式显示数据,在PHP中,您可以使用 json_encode()
3) 您的数据进来后可以根据自己的意愿进行操作。但是,只有在正确格式化的JSON时,点符号才能正常工作。参考: json.org
4) 点符号是访问以JSON格式返回的数据的一种方式,与DOM无关。如果将$ .. post的最后部分更改为“文本”,则可以作为常规字符串处理从服务器返回的数据。
其他提示
- 是的,这是正确的,这是唯一的帖子变量,例如您正在检查
isset($_POST['autocomplete'])
, ,尽管您似乎想在此处实际传递文本框值,因为自动完成通常依赖您已经键入的内容。 - 是的,当响应返回时,此功能会运行,该参数是从您的PHP页面返回的任何数据。
- 响应应该看起来像这样:
{ nsName: 'name', nsAddress: 'address' }
它使用这些值来填充这两个字段,因此点符号正在获取值 从响应, ,JSON只是做得更干净:)
我在 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));
}