使用 jquery 在方法中发送参数

Posted

技术标签:

【中文标题】使用 jquery 在方法中发送参数【英文标题】:Sending Parameters in a method using jquery 【发布时间】:2018-04-11 01:57:28 【问题描述】:

如何为表单提交方法发送参数??

这就是我正在尝试的。

 form.submit().val('#result').val(); // this doesnt work

我想将$('#result') 的值发送到表单提交方法。 IE。当我单击表单中的提交按钮时,$(#result).val() 有一个元素数组,必须将其作为参数发送给提交方法。 #result 是一个段落。这是一个POST方法

  <form method="post" action="url('api/v1/vendors/store')">

                    <u><h1> New Vendor</h1></u>

      <div class="form-group row" id="myform">


            --  insertion for addresss table  --
            <label for="lgFormGroupInput" class="col-sm-2 col-form-label col-form-label-lg">Bank A/C Number</label>
            <div class="col-sm-10">
                <input type="text" class="form-control form-control-lg" id="lgFormGroupInput" placeholder="A/c Number" name="bank_account_no">
              </div>
            </div>

          <div class="form-group row">
            <label for="smFormGroupInput" class="col-sm-2 col-form-label col-form-label-sm">Bank Account Name</label>
            <div class="col-sm-10">
                <input type="text" class="form-control form-control-lg" id="lgFormGroupInput" placeholder="Bank Account Name" name="bank_account_name">
              </div>
            </div>

          <div class="form-group row">
            <label for="smFormGroupInput" class="col-sm-2 col-form-label col-form-label-sm">Account Type</label>
            <div class="col-sm-10">
                <input type="text" class="form-control form-control-lg" id="lgFormGroupInput" placeholder="A/c Type eg: sa, ca" name="account_type">
            </div>
            </div>

          <div class="form-group row">
            <label for="smFormGroupInput" class="col-sm-2 col-form-label col-form-label-sm">Name</label>
            <div class="col-sm-10">
              <input type="text" class="form-control form-control-lg" id="lgFormGroupInput" placeholder="Name" name="name">
            </div>
          </div>

          <div class="form-group row">
            <label for="smFormGroupInput" class="col-sm-2 col-form-label col-form-label-sm">Short code</label>
            <div class="col-sm-10">
              <input type="text" class="form-control form-control-lg" id="lgFormGroupInput" placeholder="Eg: INF, KFC" name="code">
            </div>
          </div>

          <div class="form-group row">
            <label for="smFormGroupInput" class="col-sm-2 col-form-label col-form-label-sm">Active</label>
            <div class="col-sm-10">
            Activate <input type="checkbox" name="active" value="1" checked> <br>

              --  <input type="number"  class="form-control form-control-lg" id="lgFormGroupInput" placeholder="Activation Status 0 or 1" name="active" >  --
            </div>
          </div>

          <div class="form-group row">
            <label for="smFormGroupInput" class="col-sm-2 col-form-label col-form-label-sm">verified</label>
            <div class="col-sm-10">
            Verified <input type="checkbox" name="verified" value="1" checked> <br>
              --  <input type="number"  class="form-control form-control-lg" id="lgFormGroupInput" placeholder="Verification Status 0 or 1" name="verified" >  --
            </div>
          </div>

          <div class="form-group row">
            <label for="smFormGroupInput" class="col-sm-2 col-form-label col-form-label-sm">verified_date</label>
            <div class="col-sm-10">
              <input type="text" class="form-control form-control-lg" id="lgFormGroupInput" placeholder="Date" name="verified_date">
            </div>
          </div>

          <div class="form-group row">
            <label for="smFormGroupInput" class="col-sm-2 col-form-label col-form-label-sm">address_id</label>
            <div class="col-sm-10">
              <input type="number" class="form-control form-control-lg" id="lgFormGroupInput" placeholder="Address ID fk" name="address_id">
            </div>
          </div>

          <div class="form-group row">
            <label for="smFormGroupInput" class="col-sm-2 col-form-label col-form-label-sm">PAN Number</label>
            <div class="col-sm-10">
              <input type="text" class="form-control form-control-lg" id="lgFormGroupInput" placeholder="PAN Number" name="pancard_no">
            </div>
          </div>


          <div class="form-group row">
            <label for="smFormGroupInput" class="col-sm-2 col-form-label col-form-label-sm">Phone</label>
            <div class="col-sm-10">
              <input type="text" class="form-control form-control-lg" id="lgFormGroupInput" placeholder="Phone" name="phone_no">
            </div>
          </div>
          <div class="form-group row">
            <label for="smFormGroupInput" class="col-sm-2 col-form-label col-form-label-sm">Contact Person</label>
            <div class="col-sm-10">
              <input type="text" class="form-control form-control-lg" id="lgFormGroupInput" placeholder="Contact Name" name="contact_person">
            </div>
          </div>


          <div class="form-group row">
            <label for="smFormGroupInput" class="col-sm-2 col-form-label col-form-label-sm">Contact Email</label>
            <div class="col-sm-10">
              <input type="email" class="form-control form-control-lg" id="lgFormGroupInput" placeholder="email" name="contact_email">
            </div>
          </div>

        --  submit button   --
      <div class="form-group row">
        <div class="col-md-2"></div>
        <input type="submit" class="btn btn-primary">
      </div>


    </form>
</div>



<script>

  $(document).ready(function()

      $.fn.serializeObject = function()
  
      var o = ;
      var a = this.serializeArray();
      $.each(a, function() 
          if (o[this.name] !== undefined) 
              if (!o[this.name].push) 
                  o[this.name] = [o[this.name]];
              
              o[this.name].push(this.value || '');
           else 
              o[this.name] = this.value || '';
          
      );
      return o;
  ;

  $(function() 
      $('form').submit(function() 
          $('#result').text(JSON.stringify($('form').serializeObject()));

        //  $('#result').text(JSON.stringify($('form').serializeObject()));
         form.submit().val('#result');
          //return false;
      );
  );

  );


</script>

<h2>JSON</h2>
<pre id="result">
</pre>

【问题讨论】:

您是通过 ajax 还是 form action 提交表单? 使用表单动作提交,#result值包含一个json数组。 请分享您的html代码 如果#result 是段落元素,使用 ('#result').text() 方法获取值 只是想知道当我点击提交时如何发送#result 的值。谢谢:D 【参考方案1】:

如果你使用 ajax 会容易得多,

调整您的代码,而不是发送参数,您可以传递整个元素,其值来自您的 &lt;pre&gt; 标记在您的表单提交中, 并创建一个在单击提交按钮时将运行的函数。

--html--

在您的表单上添加一个 ID
<form id="yourForm">
</form>
为您的提交按钮添加一个 id
<div class="form-group row">
      <div class="col-md-2"></div>
      <input type="submit" class="btn btn-primary" id="SubmitBtn">
</div>

--javascript--

$(document).on("click","#SubmitBtn", function()
   var pre_code = $("#result").html();
   $('#yourForm').append("<textarea name='myparam'>"+pre_code+"</textarea>");
   $('#yourForm').submit();

);

--api/v1/vendors/存储文件--

然后你可以访问你的参数

$result = $_POST['myparam'];

【讨论】:

非常感谢伙计。如果我使用的是原始 php,这将完美无缺,但我使用的是 laravel,除了 json api 数据,你不能发送任何东西。如果您注意到 iv'e 已将表单数据转换为 Json。只需要通过他们。使用提交发送数组。 url('api/v1/vendors/store')" > 这里 /store 是一个方法。

以上是关于使用 jquery 在方法中发送参数的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 JQuery 重定向,加载另一个页面但在请求中发送了一些 POST 参数?

在 mvc 上使用 ajax 发送文件和文本参数

使用来自 jquery 数据表的 ajax 调用发送参数

$.ajax()方法中的processData参数

JQuery中$.ajax()方法参数详解

JQuery中$.ajax()方法参数详解