Envoi de plusieurs paramètres de données avec jQuery AJAX
j'envoie une requête ajax à un fichier php comme suit:
function checkDB(code, userid)
{
$.ajax({
type: "POST",
url: "<?php bloginfo('template_url'); ?>/profile/check_code.php",
data: 'code='+code+'userid='+userid,
datatype: "html",
success: function(result){
if(result == 0)
{
$('#success').html( code + ' has been redeemed!');
// alert('success');//testing purposes
}
else if(result == 2)
{
$('#err').html( code + ' already exists and has already been redeemed....');
//alert('fail');//testing purposes
}else if(result == 1){
$('#err').html( code + ' redeem code doesnt exist');
}
alert(result);
}
})
}
ceci est envoyé appelant la fonction sur Soumettre, comme ceci:
<form method="post" class="sc_ajaxxx" id="sc_add_voucherx" name="sc_ajax"
onsubmit="checkDB(document.sc_ajax.sc_voucher_code.value, <?php echo $user_id ?>); return false;">
</form>
le problème est que la variable user id php n'est pas envoyée au check_code.page php par ajax. ou du moins je ne peux pas faire écho à l'id de retour à la page.
Est-ce la bonne façon de passer plusieurs valeurs à une page côté serveur? Sans le passage de l'userid, il fonctionne très bien en passant juste au-dessus de la code.
Merci les gars :)
6 réponses
Voici comment POST
les données doivent être formatées:
key1=value1&key2=value2&key3=value3
dans votre cas (notez le &
comme séparateur):
'code=' + code + '&userid=' + userid
Mais jQuery fait pour vous si vous spécifiez vos données comme un objet:
data: { code: code, userid: userid }
vous devriez mettre votre data
comme ceci :
data: 'code='+code+'&userid='+userid
vous pouvez essayer ceci :
data: 'code='+code+'&userid='+userid,
au lieu de
data: 'code='+code+'userid='+userid,
généralement envoyer vos données comme ceci aide:
data: { code: code, userid: userid }
la chose la plus importante à ne pas oublier est de vérifier si le nom des variables que vous envoyez sont les mêmes dans le côté serveur
essayez ce code... il est travaillé pour moi ...
<script type='text/javascript'>
$(document).ready(function(){
$(".star").click(function(){
var rate_value1= $(this).index(".star")+1;
$.ajax({
type: "POST",
dataType: "json",
url: "<?php echo(rootpath()) ?>/vote.php",
data: { product_id: '<?php echo($product_id_to_permalink) ?>' , rate_value: rate_value1 }
});
});
});
</script>
Try this code...
<script>
function quote_ajax_table(){
var doc_name = '<?php echo $test; ?>';
var doc_no = '<?php echo $doc_no; ?>';
$.get('quote_ajax_table.php?doc_no='+doc_no+'&doc_name='+doc_name,function(data) {
$('.dyna').html(data);
});
}
</script>
//in html code
<div class="dyna"></div>