【问题标题】:Submit multiple values using only one button一键提交多个值
【发布时间】:2016-09-22 20:33:54
【问题描述】:

这是我需要的样本:

<form action="action.php">
<br>
  <input type="radio" name="firstname" value="name1" checked="checked"> First name:name1
  <br>
  <br>
  <input type="hidden" name="lastname" value="lastname1">
  <br>
<br>
  <input type="radio" name="firstname" value="name2"> First name:name2
  <br>
  <br>
  <input type="hidden" name="lastname" value="lastname2">
  <br>
  <br>
  <input type="radio" name="firstname" value="name3"> First name:name3
  <br>
  <br>
  <input type="hidden" name="lastname" value="lastname3">
  <br><br>
  <input type="submit" value="Submit">
</form>

我只需要提交检查无线电的隐藏值。 例如,如果我检查firstname1,我只需要一起提交firstname1 和隐藏lastname1。有人可以帮忙吗?

也许我的问题不正确。当我点击提交时,我只需要对应一个选中的隐藏值。我无法得到它。我尝试了一些这里建议的 javascript,但没有成功。似乎我在某处走动。任何人都可以显示正确的方法吗?

解决了。

【问题讨论】:

  • 你为什么不让它提交所有的输入。然后 PHP 脚本可以根据 $_POST['firstname'] 的值决定使用哪些输入。
  • @Bamar 感谢您的建议。它正在工作。

标签: javascript jquery forms submit


【解决方案1】:

如果您只想提交表单的某个部分,请从表单中删除操作并使用 javascript/AJAX 来提交表单。像这样的:

$("#submit").click(function() {
    var data = //get the data you want to submit, i think you can figure that part out.

    $.ajax({
       type: "POST",
       url: "js/sendEmail.php", //same link as your action
       data: data,
       success: function(response){
           console.log(response);

       },
       error: function(response){
           console.log(response);

       }
   });
    return false;
});

【讨论】:

    【解决方案2】:

    如果它们的形式相同,这将自动发生。您需要做的就是正确拉动它们。

    所以在 php 中你会这样做;

    $fname = $_POST["firstname1"];

    $lname = $_POST["lastname1"];

    【讨论】:

      【解决方案3】:

      我实际上只是将它们分解成不同的形式。最快的方法,超级简单。

      <form action="action.php" id="form1">
        <input type="radio" name="firstname" value="name_1" checked="checked"> First name:name1
        <input type="hidden" name="lastname" value="lastname1">
      </form>
      
      <form action="action.php" id="form2">
        <input type="radio" name="firstname" value="name_2" checked="checked"> First name:name2
        <input type="hidden" name="lastname" value="lastname2">
      </form>
      
      <form action="action.php" id="form3">
        <input type="radio" name="firstname" value="name_3" checked="checked"> First name:name3
        <input type="hidden" name="lastname" value="lastname3">
      </form>
      <input id="submitter" type="submit" value="Submit">
      

      在 Javascript 中,利用 jQuery:

      var id = -1;
      $("input[name=='firstname']").on("click", function(){
        id = $(this).val().split("_")[1];
      
      }).bind(this);
      
      $("#submitter").on("click", function(){
        if(id==-1) return;
        $("form#form"+id)[0].submit();
      }).bind(this);
      

      【讨论】:

      • 请描述原因,以便我给你更多的见解?
      【解决方案4】:

      试试这个:

      $(document).ready(function() {
      
           $("input[type=submit]").on("click",function(e){
      
               $myRadio = $("input[type=radio]:checked");
      
               var value1 =$myRadio.val();
      
               var value2 = $myRadio.nextAll("input[type=hidden]:first").val();
      
               $.post('action.php', {val:value1,val2:value2 }, function(response) {
      
                   alert(response);
      
               })
      
           })
      
       })
      

      【讨论】:

      • 感谢您的建议,但这似乎不起作用。没有错误也没有行动......
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-06
      • 2014-06-15
      • 1970-01-01
      • 1970-01-01
      • 2018-09-12
      相关资源
      最近更新 更多