【问题标题】:Submit whole form when select option is changed without reload page更改选择选项而不重新加载页面时提交整个表单
【发布时间】:2018-04-21 02:05:08
【问题描述】:

当我更改选择选项并将其保存到mysql而不重新加载页面时,我需要提交整个表单。

我有这段代码,但只发布选择选项值,我还需要发布表单中的隐藏值。

<form class="form-horizontal" method="POST" action='#' name="dateForm">
  <input type='hidden' name='cond_acao' class='form-control' value="edit_seccao_formando">
  <input type="hidden" name="id_formando" value="<?=$linha_formandos[id_formando];?>">
  <select name="id_seccoes" class="form-control" onchange="return postSelection">
       <option selected="selected" value="1">car</option>
       <option value="2">boat</option>
       <option value="3">plane</option>     
    </select>
  <div id='response_seccoes'></div>
  <script>
    function postSelection(selectObject) {
      var id_seccoes = window.dateForm.id_seccoes.value = selectObject.options[selectObject.selectedIndex].value;
      var dataString = "id_seccoes=" + id_seccoes;
      $.ajax({
        type: "post",
        url: "url.php",
        data: dataString,
        success: function(response) {
$('#response_seccoes').html("ok").fadeIn(100).delay(2000).fadeOut("slow");
          //$("#list").html(response);
        }
      });
      return false;
    };
  </script>
</form>

可以序列化而不是指定字符串吗?

谁能帮帮我?谢谢

【问题讨论】:

    标签: php jquery forms


    【解决方案1】:

    您正在使用 Jquery,我建议您使用类似

    的 jquery 函数来监控选择按钮以进行更改
    $("id_seccoes").change(function(){
        //call your post method here.
    });
    

    【讨论】:

    • 谢谢,但我不明白我需要改变什么才能按照你的建议去做。
    • 我假设您在更改任何选择下拉菜单时需要将一些数据发布到服务器。在这种情况下,您可以在脚本文件中编写上述代码,然后 $("id_seccoes").change(function(){ myMethodToPostData(myData); });
    • 你说的是这样的:
    • 是的,这是正确的,但是我建议您为脚本制作一个单独的文件,并将其导入您的页面。
    【解决方案2】:

    用这个替换你的代码。

    <form class="form-horizontal" method="POST" action='#' name="dateForm">
    <input type='hidden' name='cond_acao' class='form-control' value="edit_seccao_formando">
    <input type="hidden" name="id_formando" value="<?=$linha_formandos[id_formando];?>">                           
    <select name="id_seccoes" class="form-control">
    <option value="1">car</option>
    <option value="2">boat</option>
     <option value="3">plane</option>      
    </select>
    </form> 
    <div id='response_seccoes'></div>
    
    <script>
    $(document).ready(function(){
        $('[name="id_seccoes"]').change(function(){
            $.post('url.php',$('[name="dateForm"]').serialize(),function(response){
                $('#response_seccoes').html("ok").fadeIn(100).delay(2000).fadeOut("slow");
            });
        });
    });
    </script>
    

    【讨论】:

    • 解释你的代码如何解决问题比粘贴代码转储更好
    • 一切正常。让我知道这段代码有什么错误。
    猜你喜欢
    • 2021-11-12
    • 2011-08-13
    • 2013-10-14
    • 2017-09-19
    • 1970-01-01
    相关资源
    最近更新 更多