Question

$.post('testeUpdate.php', 'autocomplete',
        function(dadosResposta) {

            $('#ns-nome').val(dadosResposta.nsName);
            $('#ns-endereco').val(dadosResposta.nsAddress);
        },
    "json");

Je suis en train de le comprendre. Ainsi, et ayant la jquery $ .post lien de référence près de moi:

1) Une demande de poste est envoyé à testeUpdate.php, alors, nous pouvons passer une chaîne appelée 'autocomplete'. Précis?

Question 1) En passant une demande après avec cette chaîne, des moyens que nous pouvons plus tard, par exemple, traiter ladite demande à un conditionnel par le point spécifiquement à: $ _POST [ 'autocomplete']; ?

2) Plus tard, nous avons une fonction de rappel « sur la réussite » ce qui accepte un paramètre, dadosReposta. Précis?

Question 2) Ce dadosResposta est quelque chose qui peut venir de notre script côté serveur? Est ce un argument ayant les données que nous recevons?

3) Alors, en cas de succès, ce que nous voulons faire est: remplir un élément d'entrée avec certaines valeurs. val (dadosResposta.nsName);

Question (s) 3) est cette « notation par points » un moyen d'accéder aux données sur le format JSON - ou est-ce une façon de marcher sur les DOM comme nous le faisons normalement? Est-ce donc, quel rôle est JSON jouer ici?

Merci beaucoup à l'avance, MEM

Était-ce utile?

La solution

1) Oui puis autocomplete est accessible en utilisant PHP ainsi. ($ _POST [ 'autocomplete']). Mais autre que le fait qu'il montrera vrai sur isset () -. Il n'y aura pas de données

2) Oui dadosResposta est la réponse qui va revenir du serveur. Si vous avez défini le dernier paramètre JSON sur votre demande .post de $, il peut être utilisé en mode natif dans javaScript comme un objet JSON. Pour afficher les données de cette manière, en PHP, vous pouvez utiliser json_encode ()

3) Vous pouvez faire comme bon vous semble, une fois vos données entre en jeu. Mais la notation dot ne fonctionnera que si le JSON est formaté correctement. Ref: json.org

4) notation Dot est un moyen d'accéder aux données renvoyées au format JSON, n'a rien à voir avec les DOM. Si vous changez la dernière partie de votre $ .post à « texte » les données renvoyées par le serveur peut être travaillé comme une chaîne régulière.

Autres conseils

  1. Oui cela est exact, c'est la seule variable d'après, par exemple vous vérifiez isset($_POST['autocomplete']), mais il semble que vous voudriez transmettre réellement la valeur textbox ici, puisque autocomplete repose normalement sur ce que vous avez tapé déjà.
  2. Oui cette fonction fonctionne lorsque la réponse revient, l'argument est toutes les données revient à partir de votre page PHP.
  3. La réponse est censé ressembler à ceci:
     { nsName: 'name', nsAddress: 'address' }
    Il utilise ces valeurs pour remplir ces 2 champs, de sorte que la notation des points obtient les valeurs de la réponse , JSON est tout ce qui en fait beaucoup plus propre:)

J'ai utilisé votre code sur jsFiddle et a essayé de construire sur ce que vous avez, comme vous pouvez le voir, je les données envoyées à la fonction écho JSON sur jsFiddle, qui a répondu comme ceci (probablement ... si son PHP):

echo json_encode(array("post_response"=>$_POST));

Comme vous pouvez le voir, je changé le postData pour correspondre à la réponse que vous demandiez, du côté du serveur, il regarderait généralement un peu comme ça dans un scénario normal:

if(isset($_POST['somedata']))
{
    //do stuff... you know, whatever
    echo json_encode(array("nsName" => $someString1,"nsAddress" => $someString2));
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top