J'ai des résultats d'un fetch.php à l'aide de JSON et j'ai apporté avec succès tous les résultats à mon écran HTML modal bootstrap. Lorsque le modal est affiché, j'aimerais exécuter une requête MySQL en utilisant une valeur provenant du même Json que j'ai utilisé pour le modal, mais je ne peux pas mettre cette valeur dans une variable PHP pour exécuter la requête SQL. Comment puis-je obtenir cela?
J'essaie d'apporter la même valeur que je saisis dans la zone de texte HTML (modal), mais cela ne fonctionne pas. J'ai également essayé d'utiliser la valeur de Json '$ (' # PCR '). Val (data.pcrno);)', mais rien n'arrive. P>
Ceci est le script pour collecter des informations à partir de la base de données à partir de la base de données fichier .php: p> ceci est le code PHP p> je voudrais inclure la valeur de ce Val (data.pcrno) code> json retourne dans la variable $ PCR, la requête MySQL va donc fonctionner p> p>
3 Réponses :
Vous devez d'abord retourner Json à partir de PHP à l'aide de à l'intérieur de cette boucle p> stocker toutes les données d'une association Array, puis convertissez-le en JSON en utilisant Utilisez des données JSON dans votre fichier Ajax P> json_encode code>.
json_encode code> et renvoyer le json. p>
$.ajax({
url:'fetch.php',
method:'post',
data:{pcr_number:pcr_number},
dataType:"json",
success:function(data){
var data = JSON.parse(data);
$('#PCR').val(data.PCRNo);
$('#PCC').val(data.PCC);
$('#PCR_Creation').val(data.Creation_Date);
$('#PCR_Status').val(data.Stage);
$('#Required_Completion').val(data.Required_Completion);
}
});
@vinay_kumar Que dois-je inclure dans le json_encode code> pour obtenir la valeur du fichier fetch.php? Serait l'entrée
pccr_number code> i envoyez au fichier fetch.php ou la sortie
val (data.pcrno) code> que j'ai utilisé dans mon HTML?
J'ai essayé vos codes, mais quelque chose n'a encore manqué. J'essaie d'être très simple. Faisons la séquence que j'aimerais faire. J'ai ma table et je clique sur le "numéro de PCR" et il est stocké à var pccr_number = $ (this) .attr ('id'); code>. Parfait maintenant. Après cela, cette valeur est allée à fetch.php et trouvez le PCR_Number dans la base de données et revenez à l'intérieur d'un tableau
JSON code> avec la même valeur que nous avons envoyée dans le fichier de récupération mais dans un autre format
$ ('# # PCR '). Val (data.pcrno); code> que je remplissais mon bootstrap Modal HTML dans la zone de texte Number PCR Le nom et l'identifiant sont
"PCR" code>. (suite)
... Ce dont j'ai vraiment besoin est un moyen de stocker le numéro PCR dans un $ PCR code> variable et utilisez cette valeur pour exécuter une autre requête MySQL et obtenir d'autres informations. Comment puis-je stocker ce numéro de PCR que j'ai cliqué sur une variable PHP?
@ El.alex78uk vérifier ma nouvelle réponse
Il existe un certain nombre de problèmes logiques assez basiques avec votre code qui l'empêche de travailler.
1) 2) Votre requête SQL n'a pas de sens. Vous semblez vouloir lire une seule ligne relatif à un numéro de PCR, mais votre requête ne fait aucune utilisation de la valeur d'entrée 3) Votre sortie du PHP n'a aucun sens. Vous avez dit à JQuery (via Voici une version du code contenant toutes les modifications ci-dessus: p> JavaScript: p> php: p> NB Je suggérerais potentiellement à étudier certains didacticiels sur ce type de sujet, car il s'agit d'un cas d'utilisation assez standard pour Ajax / Json, et vous devriez pouvoir trouver des échantillons qui amélioreraient votre compréhension de tous les différentes parties. p> ps actuellement le code PHP ci-dessus retournera un vide objet s'il n'y a pas de ligne de correspondance dans la base de données. Cependant, il s'agit probablement d'une condition d'erreur (et provoquera un crash de votre code JavaScript en raison de la lutte contre les propriétés inexistantes). Vous devez donc déterminer comment vous souhaitez gérer une telle erreur et quelle réponse à revenir (par exemple 400 ou 404, et un message approprié). P> p> Data: {PCR_Number: pcr_number} code> - le nom
pcr_number Code> ne correspond pas à la valeur
PCR code> Lequel est le serveur recherchant à l'aide de
$ _ post ['PCR']; code>. Les noms doivent correspondre. Lorsque vous effectuez une demande AJAX, le nom que vous avez donné au champ de formulaire dans le code HTML n'a pas d'importance (sauf si vous n'utilisez pas
. Sériaire () code>) car vous spécifiez de nouveaux noms dans les données
Code> Paramètre. P>
PCR code> pour essayer de restreindre les résultats à cette ligne. Vous devez utiliser un code SQL
où code> clause pour l'obtenir pour sélectionner uniquement la ligne avec cet identifiant, sinon vous allez chercher toutes les lignes et saurai ce que l'on est correct. (La récupérant tous, puis à l'aide d'un
si code> dans une boucle PHP pour vérifier que le correct est très inefficace.) Je vous ai écrit une version qui utilise correctement la clause du lieu de la requête. En toute sécurité, en utilisant des énoncés et des paramètres préparés (à projeter contre les attaques d'injection SQL). p>
DataType: "json" code> Pour attendre une réponse JSON, puis votre code à l'intérieur de la fonction "Success" est basé sur l'hypothèse que vous recevrez un seul objet contenant tous les champs de la table. Mais
echo $ Row1 ['pcnno']; echo "
"; code> seule sortira un champ, et il en sortit avec HTML à côté. Ce n'est pas JSON, Ce n'est même pas proche d'être JSON. Vous devez émettre toute la ligne, puis utiliser json_encode () code> pour activer l'objet en une chaîne JSON que JQuery peut analyser lorsqu'il le reçoit. P >
Vous devriez penser que tout n'a pas de sens parce que l'instruction est de ne pas mettre le code entier, alors je viens de reprendre ce que je travaille. La requête MySQL fonctionne bien dans une autre page, alors je ne suis donc pas inquiet à ce sujet, ma préoccupation est de savoir comment stocker la valeur de la PCR, que je clique dans une table pour l'envoyer à une variable PHP comme $ PCR code> et utilisez ceci pour exécuter la requête MySQL.
Eh bien, je vous ai montré comment envoyer la valeur au serveur et je vous ai montré comment l'utiliser dans une requête SQL. Votre requête pourrait travailler ailleurs mais ce n'était pas logique dans cette situation (ce n'est pas la même chose que cela ne fonctionne pas!). Donc, le code que j'ai posté travaille-t-il pour vous et produit le résultat attendu? Et avez-vous compris les points que j'ai faits pour apprendre de plus tard?
Bonjour @adyson, ça ne m'a pas aidé. Vous essayez de vous plaindre au lieu de comprendre mon vrai problème. Je comprends les points que j'ai besoin pour étudier et apprendre, merci pour cela. Je crois que mon message est un peu déroutant, alors je crée un autre qui est lié au même problème, cependant peut le résoudre aussi. Voir le Lien . Merci beaucoup
Je suis d'accord que je ne pense pas que vous ayez peut-être articulé votre problème trop clairement. J'ai répondu à ce que je pensais être la question, mais des excuses si ce n'était pas utile. Je vais regarder votre nouveau post, merci.
ci-dessous est le script modifié pour stocker différentes valeurs en $ variable PCR
Bonjour @Vinay Kumar, j'ai fait un autre message que je crois vous aidera davantage, car je crois que celui-ci est très déroutant. Voir ceci Lien . Si vous triez celui-là, vous trierez cela aussi :-). Merci.
Le paramètre que vous avez envoyé s'appelle PCR_Number, pas PCR. Ils doivent correspondre, l'ordinateur ne peut pas deviner ce que vous vouliez dire
Et les données que vous avez écho en retour n'est pas JSON, alors JQuery ne le comprendra pas. Vous semblez être en sortie HTML à la place
Conseil de débogage, essayez d'imprimer la matrice $ _Post une fois pour voir la structure de tableau, le paramètre DataType est utilisé pour spécifier le type de retour des données, et non le sortant.
Je pense que vous devez vérifier votre code et vérifier que vous comprenez ce que JSON est et comment le générer à l'aide de PHP. Il y a beaucoup de simples tutoriels que vous pouvez suivre.
Merci pour les premiers commentaires @adyson et @pinaki, une chose que je confuse est la raison pour laquelle je peux utiliser le code
$ ('# pcr'). Val (data.pcrno); code> et inclure cette valeur dans Mon HTML et je ne peux pas obtenir cette valeur pour insérer dans une variable PHP.
Parce que ce sont deux choses complètement différentes et indépendantes. Vous pouvez accéder à votre champ de formulaire à l'aide de
$ ('# PCR') code>, car vous avez donné le champ de formulaire l'identifiant
PCR code>. Nom du paramètre de poteau que vous envoyez, vous vous-même i> spécifié comme
pccr_number code> - c'est le premier
pcr_number code> dans
Data: {PCR_NUMBER : PCR_NOMBER} CODE> Les touches que vous utilisez dans cet objet que vous passez pour
DATA code> ici, déterminez les noms des paramètres de poste que vous envoyez.