Question

Je suis en train d'utiliser un .post $ () de la manière suivante:

$.post("file.php", { file_id: $(this).val()}, function(data){...} Le file.php fait alors une requête de base de données et retourne un tableau avec un titre, la description et image de référence.

Ce que je veux faire est alors en mesure de mettre à jour le .val() pour les champs de formulaire pour chacun. Je comprends comment faire cela sur une seule variable, il serait tout simplement ce qui suit:

$.post("file.php", { file_id: $(this).val()}, function(data){ 
   $('#title').val(data);
}

Mais, comment puis-je obtenir les données renvoyées à être reconnaissable dans jquery soit comme des variables distinctes ou un tableau?

Merci à l'avance

Était-ce utile?

La solution

Voir les docs pour $ .post . Le quatrième paramètre est le type de données. Vous pouvez régler cela à JSON pour vos données de retour à un objet dans parsés ou tableau JavaScript.

$.post(
   "file.php", 
   { file_id: $(this).val() }, 
   function(data){ $('#title').val(data.title); $('#para').val(data.paragraph); },
   'json');

Dans votre fichier file.php, vous pouvez faire quelque chose comme

<?php
$return_data=array('title'=>'Fishes Go To Market','paragraph'=>'Lots of stuff');

header('Content-Type: application/json');
echo json_encode($return_data);
exit();

Assurez-vous d'inclure l'en-tête () si jQuery connaît vos données est censé être JSON, et d'utiliser json_encode donc il est formaté correctement.

Voir les json_encode docs pour plus d'informations à ce sujet, et docs sur-tête . Remeber vous ne pouvez pas avoir une autre sortie se présenter devant votre tête () et l'impression des données json_encoded, ou l'en-tête, ainsi que le JSON sera invalide.

Autres conseils

Le plus simple est de passer en arrière les valeurs JSON. Vous devrez convertir votre tableau en JSON sur le serveur (il y a beaucoup de bibliothèques côté serveur disponible pour cette ). Et modifier votre méthode .post() pour renvoyer les données comme JSON en ajoutant un quatrième paramètre comme:

$.post("file.php", { file_id: $(this).val()}, function(data) { ... }, "json");

Vous pouvez alors remplir vos variables aussi facilement que:

$('#title').val(data.title);
$('#description').val(data.description);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top