$.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的最后部分更改为“文本”,则可以作为常规字符串处理从服务器返回的数据。

其他提示

  1. 是的,这是正确的,这是唯一的帖子变量,例如您正在检查 isset($_POST['autocomplete']), ,尽管您似乎想在此处实际传递文本框值,因为自动完成通常依赖您已经键入的内容。
  2. 是的,当响应返回时,此功能会运行,该参数是从您的PHP页面返回的任何数据。
  3. 响应应该看起来像这样:
    { 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));
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top