php
  • jquery
  • ajax
  • 2012-02-17 37 views 42 likes 
    42

    我發送一個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傳遞,只需傳遞代碼就可以正常工作。

    謝謝你們:)

    回答

    112

    這裏是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

    13

    你應該設置你的data像這樣:

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

    你可以試試這個:

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

    ,而不是

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

    試試這個代碼...這是工作我...

    <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

    一般情況下將您的數據像這樣幫助:

    data: { code: code, userid: userid } 
    

    不要忘了最重要的一點是覈實,如果您發送的變量的名稱是在服務器端相同

    0
    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> 
    
    相關問題