2010-10-29 5 views
2

Je suis en train de remplir une table en utilisant jQuery $.post, mais je continue à obtenir (an empty string) lorsque je me connecte les données à l'aide console.log() pyromanes, est le code ici,

jQuery:

 $.each(data, function(i, json){ 
      //get the system names 
      $.post('get_system_name.php', {product_id:json.product_id}, function(data){ 

       console.log(data); 

      });    
     }); 

PHP:

$product_id = $_POST['product_id']; 

mysql_connect("localhost", "user", "1234") or die(mysql_error()); 
mysql_select_db("eskom_products") or die(mysql_error()); 
$query = mysql_query("SELECT products FROM products WHERE product_id='".$product_id."'") or die(mysql_error('Please try again')); 
$array = mysql_fetch_array($query, true); 

echo $array['products'] ; 

dans un premier temps je fais une demande $.getJSON(), puis je boucle à travers toutes les entrées que je reçois à l'aide de retour $.each, mais comme vous pouvez le voir, le nom du système n'est pas dans la même table, donc je dois faire un $.post() séparé pour obtenir le nom dans la table liée, mais tout ce que je reçois est une chaîne vide, des idées?

+0

Cela peut avoir plusieurs raisons - le débogage de base est la clé. Par exemple. activer 'error_reporting (E_ALL);' dans le script pour voir s'il y a des problèmes avec la syntaxe –

+0

De plus, vous avez une vulnérabilité d'injection SQL dans le script PHP (vous devez échapper le paramètre 'product_id') –

+0

cela peut ne pas être pertinent , mais juste curieux, pourquoi appelez-vous plusieurs messages sur le serveur lorsque vous ne pouvez le faire qu'une seule fois? – jerjer

Répondre

0

Il est clair que votre jquery est ok, le seul problème serait la valeur de json.product_id, cela pourrait être faux, mais je suppose que ce n'est pas le problème.

Vérifiez que la base de données retourne quelque chose. Pour ce faire, accédez directement à "get_system_name.php? Product_id =" + PRODUCTID (modifiez cela). Et changez $ _POST pour $ _REQUEST ou $ _GET.

De cette façon, vous sautez l'étape javascript.

+0

J'ai cnahged à '$ .get 'et cela a fait l'affaire, juste ajusté le code PHP en conséquence, merci! – Odyss3us

+0

@ user270311 - c'est agréable de donner la bonne réponse, mais la façon dont vous dites que vous avez fait (changer tout pour obtenir), n'explique pas pourquoi c'était faux. Avez-vous trouvé une erreur? – netadictos