J'apprécie qu'il y ait beaucoup de messages sur ce sujet particulier mais aucun ne semble adresser mon problème particulier. J'utilise la méthode post de jQuery pour interroger une base de données pour une valeur égale au texte dans une zone de saisie. Le résultat renvoyé est censé être affiché dans la zone de saisie de texte ci-dessous. Mais pour une raison quelconque, la condition de succès de la demande de publication n'est jamais exécutée. Logiquement cela suggère qu'il y a une erreur soit dans ma demande de publication, soit dans le fichier PHP sur lequel elle est postée, donc je vais coller le code des deux ici.JQuery ne reçoit pas le résultat d'une demande POST
Le jQuery
$(document).ready(function() {
$('#title').change(function() {
var data = 'title='+$(this).val();
$.post('getinfo.php', data, function(response){
if(response.toString() == 'invalid')
{
alert('no such book title');
}
else
{
alert('book found');
}
});
return false; // required to not open the page when form is submited
});
});
l'obtenir fichier info.php
<?php
defined('C5_EXECUTE') or die(_("Access Denied."));
$title = $_post['title'];
$db = loader::db();
$res = $db -> Execute('select isbn from btBookList where title = ?', array($title));
if($res !=null)
{
$identifier = '';
foreach($res as $row)
{
$identifier = $row['isbn'];
}
echo json_encode($identifier);
}
else
echo 'invalid';
?>
Ceci est en béton 5 où les defined('C5_EXECUTE') or die(_("Access Denied."));
et
$db = loader::db();
$res = $db -> Execute('select isbn from btBookList where title = ?', array($title));
vous autorisez l'injection sql via la variable title post. Je crois que votre problème est avec la partie des données de votre message. – abc123
Accédez-vous localement à votre fichier jQuery ou via un serveur Web? (même si c'est hébergé localement) .. au fond, l'URL dans votre barre d'adresse commence par 'http', ou 'fichier'? Si ce dernier cas, vous pouvez rencontrer une erreur de fichier de stratégie interdomaines (http://en.wikipedia.org/wiki/Same_origin_policy) – Alfie
Que se passe-t-il lorsqu'il n'y a aucune ligne correspondante? Est-ce que $ res devient réellement nul ou est-ce un tableau vide? Avez-vous essayé d'examiner la requête/réponse réseau depuis/vers votre page getinfo.php à l'aide des outils de développement Chrome, Safari ou Firefox? – SnowInferno