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 :)

45
demandé sur Lucky 2012-02-17 17:05:12

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 }
117
répondu Linus Gustav Larsson Thiel 2013-11-23 09:33:05

vous devriez mettre votre data comme ceci :

data: 'code='+code+'&userid='+userid
14
répondu Camille Hodoul 2012-02-17 13:09:57

vous pouvez essayer ceci :

data: 'code='+code+'&userid='+userid,

au lieu de

data: 'code='+code+'userid='+userid,
4
répondu Poonam 2012-02-17 13:09:58

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

1
répondu break7533 2017-01-30 15:29:40

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>       
0
répondu waheed zulfiqar 2014-01-22 12:34:32
 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>
0
répondu Dee_wab 2017-02-15 09:34:51