【问题标题】:Sending multiple data parameters with jQuery AJAX使用 jQuery AJAX 发送多个数据参数
【发布时间】:2012-03-08 21:09:57
【问题描述】:

我正在向 php 文件发送一个 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>

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

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

谢谢大家:)

【问题讨论】:

    标签: php jquery ajax


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:
       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>
      

      【讨论】:

        【解决方案3】:

        通常这样发送您的数据会有所帮助:

        data: { code: code, userid: userid }
        

        最重要的是不要忘记验证您发送的变量的名称在服务器端是否相同

        【讨论】:

          【解决方案4】:

          试试这个代码……它对我有用……

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

          【讨论】:

            【解决方案5】:

            POST 数据的格式如下:

            key1=value1&key2=value2&key3=value3
            

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

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

            但是,如果您将数据指定为对象,那么 jQuery 会为您做到这一点:

            data: { code: code, userid: userid }
            

            【讨论】:

            • 好的,谢谢。我如何将其指定为对象?这会是数据类型:json 吗?
            • 不,您不需要更改您的dataType - 这是对 jQuery 的提示,它应该如何解释您的响应。它发送的数据默认序列化为发布数据,例如code=17&amp;userid=42。你只需要把你的数据字符串改成我上面写的就行了。
            • 好吧,这是有道理的......但你为什么要将你的 dataType 设置为 JSON 呢?要专门读取 JSON?
            • 通常你不需要指定dataType,jQuery 会根据响应头等来计算它。如果它不能,并且你希望它接收例如JSON 回来了,这很有意义。见jQuery.ajax documentation。
            • 我喜欢对象方法,因为它更容易阅读并且看起来很干净。
            【解决方案6】:

            你可以试试这个:

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

            而不是

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

            【讨论】:

              【解决方案7】:

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

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

              【讨论】:

                猜你喜欢
                • 2013-02-23
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2022-11-27
                • 1970-01-01
                • 2018-01-10
                • 2013-09-30
                相关资源
                最近更新 更多