web-dev-qa-db-ja.com

jQuery AJAXを使用して複数のデータパラメーターを送信する

次に示すように、ajaxリクエストをphpファイルに送信しています。

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>

問題は、ユーザーID php変数がajaxによってcheck_code.phpページに送信されないことです。または少なくとも、ページにIDをエコーバックすることはできません。

これは、サーバー側のページに複数の値を渡す正しい方法ですか?ユーザーIDを渡すことなく、コードを渡すだけで正常に機能します。

みんなありがとう :)

51
JamesG

POSTデータのフォーマット方法は次のとおりです。

key1=value1&key2=value2&key3=value3

あなたの場合(セパレータとして&に注意してください):

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

ただし、データをオブジェクトとして指定すると、jQueryが自動的に処理します。

data: { code: code, userid: userid }

dataを次のように設定する必要があります。

data: 'code='+code+'&userid='+userid
14
Camille Hodoul

これを試すことができます:

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

の代わりに

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

通常、次のようにデータを送信すると役立ちます。

data: { code: code, userid: userid }

忘れてはならない最も重要なことは、送信する変数の名前がサーバー側で同じかどうかを確認することです

1
break7533

Linus Gustav Larsson Thielからの答えは、ボタンがクリックされたときにトリガーされる次の&.ajax()を使用したことを示しています。日、月、年のパラメーターを渡すことができます。

$('#convertbtn').on('click',function(){
ageddajax = $("#agedd").val();
agedmmajax = $("#agemm").val();
ageyyyyajax = $("#ageyyyy").val();
    if(ageddajax > 0 && agemmajax > 0 && ageyyyyajax >0){
    $.ajax({
        type:'POST',
        url:'ajaxDataAge.php',
        data:'agedd_id='+ageddajax +'&agemm_id='+agemmajax +'&ageyyyy_id='+ageyyyyajax,
            success:function(html){
            $('#cydivage').html(html);
            }
        });
    }   
});
1
Sanopotens
 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
Dee_wab

このコードを試してください...それは私のために働いています...

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