【问题标题】:How to get PHP Submit button to link to a new page? [closed]如何让 PHP 提交按钮链接到新页面? [关闭]
【发布时间】:2015-08-20 20:39:27
【问题描述】:

我编写了一个 HTML 表单,要求用户回答一些选择题。最后,我有一个提交按钮(使用输入类型 = 按钮)和所有必要的 php 代码来将多项选择答案提交到 MySQL 数据库。 我希望提交按钮将多项选择答案发送到数据库并链接到包含更多问题的新页面。我使用 onClick 事件使链接部分正常工作。

但是数据没有被提交。现在我正在尝试这个:

<input type=button onClick="submitData()" name = "submit" value="Next ->">

<script>
function submitData() {
document.getElementById("form1").submit();
}
</script>

然后我的PHP代码以:

开头
<?php

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

$con = mysql_connect("localhost","root",""); ...

我认为 isset 函数会检查按钮是否被按下,但我不认为是这种情况。有任何想法吗?

(顺便说一句,我最初使用“输入类型 = 提交”选项,我能够使用它将数据发送到数据库。但我无法让“输入类型 = 提交”按钮作为链接工作到一个新页面,所以我想我会尝试使用“输入类型=按钮”)

【问题讨论】:

  • 您需要添加更多代码,您发布的内容不完整
  • 提交按钮没有链接到任何地方。它只是将表单提交到&lt;form&gt; 的动作属性指向的任何地方。并且上面的代码毫无意义,因为它在 JS 中执行提交按钮无论如何都会自动执行的操作。
  • 你是用ajax提交表单吗?

标签: javascript php html mysql


【解决方案1】:

问题是由于提交按钮中的name="submit"。表单中的所有输入都是表单的属性,它们的名称就是属性名称。所以document.getElementById("form1").submit就是这个&lt;input&gt;元素,它隐藏了继承自原型的submit()方法。

只需更改此元素的名称即可。

<input type=button onClick="submitData()" name = "submitData" value="Next ->">

【讨论】:

    【解决方案2】:

    使用action-attribute 提交时,您的表单可以被定向到另一个页面,如下所示。

    <form action="next_question.php" method="post">
    

    然后你可以用新问题填写next_question.php的内容,并在同一页面上将你想要的信息插入到数据库中。

    【讨论】:

    • 请注意,如果您想在错误时重新填充表单(当字段不正确时),实际上最好发布到当前页面,处理并插入当前页面上的值,并且仅仅当一切正常时才在 PHP 中进行重定向(这称为 在发布后重定向)。
    • 这取决于您期望表单中出现什么样的错误。您可以通过表单本身的 HTML 属性进行一些错误检查。如果在处理此代码之前有输出,则无法在 PHP 中使用 header-redirecting。尽管我同意你应该检查错误的观点,但并不总是需要在 PHP 中完成。 OP 表单是“多项选择答案”,所以我只是假设一堆复选框或单选按钮。
    • 总是需要在 PHP 中完成。客户端错误检查可以被绕过,因此不应该被信任。
    【解决方案3】:

    如果您已经准备好用于收集第一页答案的 PHP 代码;保存到数据库后,您可以使用以下命令重定向到其他页面:

    header("Location: http://example.com/myOtherPage.php");
    die();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-20
      • 2016-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多