【问题标题】:Input type=button as if it were type=submit输入 type=button 就好像它是 type=submit
【发布时间】:2012-11-28 11:10:15
【问题描述】:

我需要有两个具有不同类型的输入:

<input  type="button"  **onclick = "?????"**   name="back"  value="&#8592 Back"  >
<input  type="submit" name="submit" value="Forward &#8594"  >

我该如何为 type=button 运行这个 PHP 代码:

<?php

    if (isset($_POST['back']))
    {

        $_SESSION['onpage'] = $_SESSION['onpage'] - 1;

        $query_questionset = "
        select Q.Constructor AS Constructor,
        QS.QuestionIDFKPK AS QuestionIDFKPK,
        Q.QuestionValue AS QuestionValue,
        QS.SortOrder AS SortOrder,
        QS.onpage AS onpage
        from tbluserset AS US
        inner join tblquestionset AS QS ON US.QuestionSetIDFKPK = QS.QuestionSetIDPK
        inner join tblquestion AS Q ON QS.QuestionIDFKPK = Q.QuestionIDPK
        where (US.UserIDFKPK = " . $UserId . ")
        and (US.UserSetIDPK= '" . $_SESSION['UserSetIDPK'] . "')
        and (QS.onpage = '" . $_SESSION['onpage'] . "')
        order by QS.SortOrder";

    }

    $QuestionSet_Constructors = mysql_query($query_questionset);
?>

我的表单和输入提交工作完美:

<form id= "formID"  class="formular"   method="post" action= "<?= $url = "QUESTIONAREnewdatabase.php"; ?>" accept-charset="utf-8">

我需要在 input type=button 上运行 PHP 代码和操作表单,就像 Back 有 type=submit 一样?

【问题讨论】:

    标签: javascript button input dom-events


    【解决方案1】:

    这是使用 Javascript 的一种方式,它会动态创建一个名为 back 的隐藏输入并将其附加到表单,然后在单击后退按钮时提交表单。

    <script>
        function postBack()
        {
            var myForm = document.getElementById("formID");
            var backInput = document.createElement("input");
            backInput.type = "hidden";
            backInput.name = "back";
            backInput.value = "1";
    
            myForm.appendChild(backInput);
            myForm.submit();
        }
    </script>
    
    
    <input type="button" onclick="postBack()" name="back" value="&#8592 Back">
    

    在服务器端,您现在可以测试:

    if(isset($_POST['back']))
    {
        // back was pressed...
    }
    

    【讨论】:

      【解决方案2】:

      试试这个

      < input type="submit" onclick = "?????" name="back" value="&#8592 Back" >
      

      【讨论】:

      • 不能是提交这个按钮:(,我需要一个不同的类型。
      • 如果您使用“返回”是其他表单操作
      【解决方案3】:
      <form action="" id="formID" class="formular" method="post" accept-charset="utf-8">
          <!-- Your inputs here -->
          <button type="submit" name="back">&#8592 Back</button>
          <button type="submit" name="submit">Forward &#8594</button>
      </form>
      

      【讨论】:

      • 我不能在那个按钮中使用 type=submit,我需要运行那个 php 代码。不要介意是按钮还是输入,问题是我不能为此使用 TYPE+SUBMIT。
      • 我不明白为什么你不能在这里使用提交按钮?只会发送点击的按钮,即使两者都是 type=submit
      • 因为我正在检查用户是否回答了我表单的每个字段,并且这发生在提交(它是一个 js 库)中,如果发生这种情况,按钮返回用户之前无法访问页面没有先标记当前页面上的东西。
      • 可能值得在你的问题中添加这个非常重要的点,除非你想要另外 3 个无用的答案,我们不是通灵者 :)
      猜你喜欢
      • 2011-05-14
      • 2013-09-07
      • 2013-01-03
      • 1970-01-01
      • 2014-02-19
      • 2013-11-16
      • 2015-03-23
      • 2015-11-14
      • 2020-03-20
      相关资源
      最近更新 更多