【问题标题】:HTML/PHP multiple form actionsHTML/PHP 多表单动作
【发布时间】:2014-04-16 11:40:05
【问题描述】:

我有一个带有 2 个选择框、一个文本框和 1 个文本区域的表单。 当我加载此表单时,它会从数据库中获取所有菜单项和语言项并将它们插入到选择框中,然后从菜单项和语言中获取相应的内容。

 <form style="border: 1px solid black; " name="form" method="post" action="">
      Content selecteren om te wijzigen:
      <table>
        <tr>
          <td width="78">Menu item:</td>
          <td><select name="Menu" onchange="this.form.submit()">' . $this->MenuItems->render() . '</select></td>
        </tr><br>

        <tr>
           <td width="78">Taal:</td>
           <td><select name="Language" onchange="this.form.submit()">' . $this->LanguageItems->render() . '</select></td>
       </tr>

       <tr>
        <td>Menu Item:</td>
        <td width="78"><input name="MenuItemTextBox" type="text" id="MenuItemTextBox" value="' . $_POST['Menu'] . '"></td><br>
       </tr>

       <tr>
         <td>content</td>
         <td><textarea style="" Name="Content" id="NewContent" ROWS=10 COLS=50>' . $this->GetContent->render() . '</textarea></td>
       </tr>

        <tr>
          <td><input type="submit" name="Submit" value="Wijzigen"></td>
        </tr>
    </table>
</form>

当您从选择框中选择不同的值时,它会重新加载表单/页面并再次使用“this.form.submit()”在文本中显示正确的内容,并且它还会记住您在选择框中选择的内容。

现在我想将此表单中的所有这些帖子提交到文件 ChangeContent.php 但我不能在表单中使用 action 属性,否则当您从选择框中选择新值时它总是会转到此文件。

简而言之,我的问题是:重新加载表单 onchange,同时能够在按钮提交按下时使用 action 属性。

谢谢

【问题讨论】:

    标签: php html forms action onchange


    【解决方案1】:

    如果我正确理解了这个问题,您可以像这样通过 javascript/jquery 更改表单的 url..

    <select onchange="submitform('url1')"></select>
    <select onchange="submitform('url2')"></select>
    
    <script type="text/javascript">
    function submitForm(url)
    {
      $("#formid").attr("action",url);
      $("#formid").submit();
    }
    </script>
    

    如果您在提交按钮上执行此操作,您可以尝试如下操作:

    <input type="submit" onclick="return submitformviabtn()"></select>
    <select onchange="submitform('url2')"></select>
    
    <script type="text/javascript">
    function submitformviabtn(e)
    {
            e.preventDefault();
      $("#formid").attr("action","page.php");
      $("#formid").submit();
    }
    </script>
    

    【讨论】:

    • 你的答案不是我现在使用的,但感谢你我找到了它。我只需要使用 this.form.action="somethingelse";和它的好。非常感谢
    【解决方案2】:
     <script>
      $(document).ready(function(){
    
      $("#textBox").keyup(function()
    
         changeTest($(this).val());
         });
    
    
        function changeTest(val)
        {  
         rowno=0;
         var str="";
         str = "http://www.xyz.com/index.php/api/getArtist?searchtext="+val;
    
         $.getJSON(str, function (data) {
    
            var artistname="";
            var artistid="";
            $.each( data, function(key1,value1) {
            $.each(data[rowno], function(key,value) {                 
    
                if(key=='artistname')
                        {
                  artistname=value ;
                        }
           }); 
          availableTags[rowno] = artistname;
          rowno=rowno+1;
           }); 
         });  
          $( "#textBox" ).autocomplete({
       source: availableTags
      });
         }
    
    
      </script>
    
    
    
        <form action="your-page.php" method="post">
    
        <label>Event Category</label>
    
        <select name="eventTypeidFk" id="eventTypeidFk" class="" required onchange="changetextbox()">
    
                    <option value="">--- Select Event Category ---</option>
                    <option value="1">Sports</option>
                    <option value="2">Concert</option>
    
                    </select>           
    
                    <label>Artist</label>
                    <input type="text" name="artist1" id="textBox" class="" required>
    
    
          </form>
    

    你可以使用这个概念。创建一个 api 以从 db 中获取数据并使用 onchange 调用该方法。

    【讨论】:

      猜你喜欢
      • 2014-10-14
      • 2015-11-29
      • 1970-01-01
      • 2013-05-15
      • 2013-08-21
      • 2011-10-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多