2013-08-13 3 views
0

Simple question: Je veux juste envoyer item_num à insert_profile.php, puis charger insert_profile.php et l'écho item_num là. Ça ne fonctionne pas! 'insert_profile.php' va charger mais il n'obtient pas les données.Passer la variable AJAX dans la page .php et charger cette page et la variable d'écho

Est-ce un problème avec mon data:? J'ai également essayé data: {item_num: item_num}. Je suis désolé si c'est un doublon, mais j'ai essayé tous les exemples que j'ai vus et aucun d'eux ne fonctionne. Je pense qu'il pourrait également être dans success:

J'ai également regardé http://api.jquery.com/jQuery.ajax/.

Javascript/HTML

<script> 

$('.prof_wl_btn').click(function() { 
$(this).removeClass('prof_wl_btn'); 
$(this).addClass('prof_wl_btn_added'); 
    var item_num = this.id; 
    alert('item id ' + item_num); //*this will alert correctly* 
    $.ajax({ 
     type: "POST", 
     url:'insert_profile.php', 
     data: "item_num"+item_num, 
     success: location.href = "insert_profile.php" //*this will load** 
    }); 
}); 
</script> 

PHP

<?php 
$s_n = $_REQUEST['item_num']; 
echo $s_n; 
?> 

Répondre

1

Vous ne pouvez pas écho la variable de cette façon parce que vous avez deux demandes différentes pour la même page:

  • La première est la requête AJAX lorsque vous envoyez les données vers votre page où vous faites une action et le retour ;
  • La seconde lorsque vous accédez à la page insert_profile.php, lorsque votre valeur est perdue.

Si vous voulez voir que votre valeur est renvoyée, vous pouvez le faire:

L'appel AJAX devrait ressembler à:

$.ajax({ 
     type: "POST", 
     url:'insert_profile.php', 
     data: {item_num : item_num}, 
     success : function(data) { 
     alert(data); 
     } 
    }); 

Ensuite, votre fichier PHP:

<?php $s_n = $_POST['item_num']; 
    echo $s_n; 
    exit; 
?> 
+0

alors pourrais-je le mettre dans une variable '$ _SESSION'? Ou que puis-je faire? –

+0

Oui, vous pouvez le mettre sur une variable de session. – John

+0

le code ci-dessus va écho correctement, mais comment puis-je avoir les données à l'extérieur de 'insert_profile.php'?J'ai essayé de mettre dans une variable '$ _SESSION', mais cela ne fonctionne pas. J'ai essayé '$ _SESSION ['var'] = $ s_n; echo $ _SESSION ['var']; 'Dois-je le mettre dans la' SESSION' et ensuite faire un autre re-direct à partir de là? –

0
$.ajax({ 
     type: "POST", 
     url:'insert_profile.php', 
     data: "item_num = "+item_num, 
     success : function(data) { 
     // location.href = "insert_profile.php" //*this will load** 
     alert(data); 
     } 
    }); 

Dans le code PHP que vous faites comme ça et vérifier

<?php 
echo 'OK'; 
+0

Merci, mais cela ne semble pas changer quoi que ce soit ... –

+0

@ user2118228 il vous manque '=' dans 'data:" item_num "+ item_num' et le succès devrait être une fonction. – som

+2

Ou en notation abrégée, vous pouvez utiliser '$ .post (" insert_profile.php ", {" item_num ": item_num}, fonction() {location.href =" insert_profile.php "})' – ch4nd4n

Questions connexes