发送多个数据参数使用jQuery AJAX

问题描述:

我发送一个Ajax请求的PHP文件如下所示:发送多个数据参数使用jQuery AJAX

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);  
     } 
    }) 

} 

这是发送调用提交功能,像这样:

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

问题是用户标识php变量没有被ajax发送到check_code.php页面。或者至少我似乎无法将id回显到页面。

这是将多个值传递到服务器端页面的正确方法吗?没有userid传递,只需传递代码就可以正常工作。

谢谢你们:)

这里是POST数据应该如何格式化:

key1=value1&key2=value2&key3=value3 

在你的情况(注意&作为分隔符):

'code=' + code + '&userid=' + userid 

但jQuery也如果你指定你的数据为对象:

data: { code: code, userid: userid } 
+1

好,谢谢。我如何将它指定为一个对象?这是数据类型:json? – JamesG 2012-02-17 13:26:04

+0

不,你不需要改变'dataType' - 这是jQuery应该如何解释你的响应的暗示。它发送的数据默认序列化为后期数据,例如, '代码= 17&的userid = 42'。您只需将您的数据字符串更改为我上面所写的内容即可。 – 2012-02-17 13:31:13

+0

好吧,这是有道理的......但为什么woiuld你想设置你的dataType到JSON呢?要专门阅读JSON? – JamesG 2012-02-17 15:01:36

你应该设置你的data像这样:

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

你可以试试这个:

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

,而不是

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

试试这个代码...这是工作我...

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

一般情况下将您的数据像这样帮助:

data: { code: code, userid: userid } 

不要忘了最重要的一点是核实,如果您发送的变量的名称是在服务器端相同

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>