Domanda

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

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

Sto cercando di capire questo. Quindi, e avendo il jquery $ .post collegamento di riferimento vicino a me:

1) una richiesta POST viene inviato a testeUpdate.php, quindi, siamo in grado di passare una stringa denominata 'Completamento automatico'. Preciso?

Domanda 1) Passando una richiesta POST con quella stringa, significa che possiamo in seguito, ad esempio, elaborare tale richiesta su un condizionale specificamente scegliere: $ _POST [ 'autocomplete']; ?

2) Più tardi, abbiamo una funzione di callback "in caso di successo" quello che accetta un parametro, dadosReposta. Preciso?

Domanda 2) Questo dadosResposta è qualcosa che può venire dal nostro script lato server? È questo un argomento che ha i dati che riceviamo?

3) Quindi, in caso di successo, quello che vogliamo fare è: occupare qualche elemento di input con alcuni valori. val (dadosResposta.nsName);

Question (s) 3) è questa "la notazione punto" un modo per accedere ai dati in formato JSON - o si tratta di un modo per camminare sulla DOM come facciamo normalmente? È così, allora quale ruolo sta giocando JSON qui?

Grazie mille in anticipo, MEM

È stato utile?

Soluzione

1) Sì quindi Completamento automatico si può accedere utilizzando PHP in questo modo. ($ _POST [ 'autocomplete']). Ma a parte il fatto che mostrerà vero su isset () -. Non avrà alcun dato

2) Sì dadosResposta è la risposta che tornerà dal server. Se si è impostato l'ultimo parametro come JSON su vostra richiesta .post $, esso può essere utilizzato in modo nativo in JavaScript come un oggetto JSON. Per visualizzare i dati in questo modo, in PHP è possibile utilizzare json_encode ()

3) Si può fare come ti pare una volta i dati entra in gioco. Ma la notazione punto sarà solo il lavoro se il JSON è formattato correttamente. Rif: json.org

4) Dot notazione è un modo per accedere ai dati restituiti in formato JSON, non ha nulla a che fare con il DOM. Se si modifica l'ultima parte del vostro $ .post per "testo" i dati restituiti dal server può essere lavorato su come una stringa regolare.

Altri suggerimenti

  1. Sì, questo è corretto, è l'unica variabile posta, ad esempio si sta controllando isset($_POST['autocomplete']), anche se sembra che ci si vuole far passare in realtà il valore di testo qui, dal momento che il completamento automatico si basa normalmente su quello che hai scritto già.
  2. Si questa funzione viene eseguito quando la risposta ritorna, l'argomento è qualsiasi dato torna dalla tua pagina PHP.
  3. La risposta dovrebbe essere simile a questa:
     { nsName: 'name', nsAddress: 'address' }
    E 'con questi valori per popolare questi 2 campi, in modo che la notazione punto è ottenere i valori di dalla risposta , JSON è solo fare questo molto più pulita:)

Ho usato il vostro codice su jsFiddle e ha cercato di costruire su ciò che hai, come si può vedere io i dati inviati alla funzione jSON eco su jsFiddle, che ha risposto in questo modo (probabilmente ... se PHP):

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

Come potete vedere ho cambiato la postData per abbinare la risposta che stavate chiedendo, sul lato server che di solito guardare un po 'come questo in uno scenario normale:

if(isset($_POST['somedata']))
{
    //do stuff... you know, whatever
    echo json_encode(array("nsName" => $someString1,"nsAddress" => $someString2));
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top