Pregunta

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

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

Estoy tratando de entender esto. Por lo tanto, y teniendo el jQuery $ .post enlace de referencia cercanos a:

1) una solicitud POST se envía a testeUpdate.php, a continuación, podemos pasar una cadena denominada 'autocompletar'. Preciso?

Pregunta 1) Pasar una petición POST con esa cadena, significa que podemos posterior, por ejemplo, procesar esa petición a un condicional por específicamente punto a: $ _POST [ 'autocompletar']; ?

2) Más tarde, tenemos una función de devolución de llamada "en el éxito" lo que acepta un parámetro, dadosReposta. Preciso?

Pregunta 2) Este dadosResposta es algo que puede venir de nuestra script del lado del servidor? Es este un argumento que tiene los datos que recibimos?

3) Por lo tanto, en caso de éxito, lo que queremos hacer es: poblar algún elemento de entrada con algunos valores. val (dadosResposta.nsName);

Pregunta (s) 3) Es este "notación de puntos" una manera de acceder a los datos en formato JSON - o se trata de una manera de caminar sobre el DOM como normalmente lo hacemos? Es así, entonces, ¿qué papel está desempeñando JSON aquí?

Muchas gracias de antemano, MEM

¿Fue útil?

Solución

1) Sí, entonces autocompletar se puede acceder usando PHP de esta manera. ($ _POST [ 'autocompletar']). Pero aparte del hecho de que va a mostrar cierto en isset () -. No tendrá ningún dato

2) Sí dadosResposta es la respuesta que va a volver desde el servidor. Si ha establecido el último parámetro como JSON en su petición .post $, que puede ser utilizado de forma nativa en JavaScript como un objeto JSON. Para mostrar los datos de esta manera, en PHP puede utilizar json_encode ()

3) Puedes hacer lo que quieras, una vez que sus datos entra en acción. Pero la notación de puntos sólo funcionará si el JSON tiene el formato correcto. Ref: json.org

4) notación de puntos es una forma de acceso a los datos devueltos en el formato JSON, no tiene nada que ver con el DOM. Si cambia la última parte de su $ .post a "texto" los datos devueltos por el servidor se puede trabajar sobre como una cadena regular.

Otros consejos

  1. Si esto es correcto, que es la única variable posteriormente, por ejemplo, usted está comprobando isset($_POST['autocomplete']), aunque parece que te gustaría pasar realmente el valor de texto aquí, ya autocompletar normalmente se basa en lo que ya se ha escrito.
  2. Si esta función se ejecuta cuando vuelve la respuesta, el argumento es cualquier dato que vuelve de su página PHP.
  3. La respuesta se supone que debe ser algo como esto:
     { nsName: 'name', nsAddress: 'address' }
    Se trata de utilizar estos valores para rellenar esos campos 2, por lo que la notación de puntos está recibiendo los valores de la respuesta , JSON es sólo hacer esto mucho más limpio:)

He utilizado el código en jsFiddle y trató de construcción en lo que tiene, como se puede ver que los datos enviados a la función de eco en JSON jsFiddle, que respondió así (... probablemente si su PHP):

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

Como se puede ver he cambiado el Postdatum para que coincida con la respuesta que estaba solicitando, en el lado del servidor que por lo general se parece un poco a esto en un escenario normal:

if(isset($_POST['somedata']))
{
    //do stuff... you know, whatever
    echo json_encode(array("nsName" => $someString1,"nsAddress" => $someString2));
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top