2011-07-18 3 views
1

J'ai une liste d'enregistrements qui boucle de la table mysql, pour chaque enregistrement que j'avais assigné une fonction onclick afin de passer les données pour mysql query utilisation pour éviter l'actualisation de la page à chaque appel,JQuery ajax post problème avec PHP

<a href='javascript:void(0)' onclick='PlayMV(\"".$rows["v_type"]."\",\"".$rows["v_id"]."\");'>Play</a> 

ci-dessous passe des valeurs à la fonction jquery:

<script type="text/javascript"> 
function PlayMV(data1, data2){ 
$.post("mtv.php", { var1: "data1", var2: "data2" }, 
    function(data){ 
    $('#result').html(data); 
}); 
} 
</script> 

vient ici le problème, le "$ ('# résultat') html (données);." a toujours été moi retourné une page entière dans le code source au lieu de détenus que les valeurs, ce que je veux est seulement capable d'afficher « data1 » et « données2 » et affecté dans une variable php et mysql query comme ci-dessous:

$var1 = data1; 
$var2 = data2; 
$q = mysql_query("SELECT * FROM table WHERE mvtype='".$var1."' AND mvid='".$var2."'"); 

comment utiliser JSON pour transmettre ces données dans la requête mysql pour récupérer le résultat final, quelqu'un peut-il aider?

Merci beaucoup. Votre script mtv.php les recevra dans le $ _POST global.

Répondre

2

vous devriez être en mesure d'obtenir les params avec $ _POST [ 'var1'], $ _POST [ 'var2']

script doit être:

<script type="text/javascript"> 
    function PlayMV(data1, data2){ 
     $.post("mtv.php", { var1: data1, var2: data2 }, 
      function(data){ 
       alert("Data Loaded: " + data); 
     }); 
    } 
</script> 

Vous avez eu des citations autour des valeurs.

EDIT

Oh, si vous voulez des données à partir php, vous pouvez retourner XML ou JSON, simplement alerte (données) pour voir ce qui est revenu tout à l'heure.

En mtv.php, l'utilisation json_encode() et l'écho, cela se retourné comme 'données' que vous pouvez faire quelque chose liek ceci:

Exemple retour JSON: { 'chose': 1234}

var myObject = $.parseJSON(data);  

alert(myObject.thing); 

L'alerte afficherait 1234.

+1

Je pense qu'il a simplement mis les variables à ces chaînes pour l'exemple/test. –

+0

Nope ... ils sont des paramètres de la fonction, vérifiez son Q, vous verrez qu'ils sont cités ... tandis que son appel passe dans les données alternatives $ rows ["v_type"] et $ rows ["v_id"]. – Brian

+0

ah, mon mauvais. Pardon. –

1

Comment récupérer-vous les données en php? Vous devriez être en mesure de le chercher comme suit:

$var1 = $_POST['var1']; 
$var2 = $_POST['var2']; 
+0

Salut, je peux récupérer les données correctement affectées dans la variable php, c'est la partie la plus difficile pour moi d'analyser la requête mysql, fonction (données) { $ ('# result'). Html (données); } s'il vous plaît aviser moi pour plus d'échantillon json sur la façon de l'utiliser. –

+0

Ah, votre question ne précisait pas que c'était le problème :) Il suffit de mettre vos résultats dans un tableau php, puis faire un json_encode sur ce tableau et renvoyer le résultat. Vous pouvez ensuite utiliser ce résultat de javascript. –