PHP 提交刷新页面并将提交的 id 作为参数


PHP submit refreshes the page and takes the submit's id as a parameter

这是我的问题 - 当我点击提交按钮时,它应该执行一些代码。 不幸的是,它所做的只是使用提交的 ID 和值在一个奇怪的 url 刷新页面。文件称为Q2C.php。这是代码:

<?php
if(isset($_POST['submit'])) {
    $arraylength = count($selectedQuotes);
    for($i = 0; $i < $arraylength; $i = $i + 1) {
        $supplierQuoteID = $selectedQuotes[$i];
        $updateSQL = "UPDATE supplierquotes SET `Selected` = 1 WHERE `SupplierQuoteID` = '$supplierQuoteID'";
        $updateQuery = mysql_query($updateSQL);
    }
} 
?>
<div class="buttons">
    <input type="submit" name="submit" id="submit" value="Create Q2C" />
    <input type="submit" name="cancel" id="cancel" value="Cancel" />
</div>

它将我重定向到此网址:(路径)/Q2C.php?submit=Create+Q2C

怎样才能阻止它将我重定向到这里,而只是执行 if isset 语句中的内容?

您需要将按钮放入表单中。

<form method="post">
  <input type="submit" name="submit" id="submit" value="Create Q2C" />
  <input type="submit" name="cancel" id="cancel" value="Cancel" />
</form>

您应该考虑将第二个提交按钮更改为取消按钮。

我在HTML中没有看到<form>,但是您需要使用POST,而不是GET

<form method=post>

您尚未在上面的代码中完全提交表单,但从重定向的 url 中可以清楚地看出,您正在使用 GET 作为表单的 post 方法。在您的 isset 检查中,您使用的是 $_POST。 将表单方法更改为发布,然后它将正常工作。

您需要指定方法。默认情况下,其get

<div class="buttons">
    <form action="Q2C.php" method="post">
        <input type="submit" name="submit" id="submit" value="Create Q2C" />
        <input type="submit" name="cancel" id="cancel" value="Cancel" />    
    </form>
</div>

如果您不想刷新页面,则可能应该使用 ajax 提交表单。以下是您可以参考的相同代码:

$.ajax({
                type: "GET",
               url: "abc.php",
               data: "name="+form.name.value,
                success: function(rs) 
                { 
                            // do success stuffs here
                          }
                           });

您好,不确定我是否纠正了您的问题,例如您想要向 Q2C 提交表单.php而没有一个名为"Method"的表单属性如果您根本不设置该方法,表单将使用 GET 方法作为默认值.....但从您的代码来看,表单似乎正在使用 get 提交到 Q2C.php....你说(isset($_POST['submit']))这是错误的,因为从未设置过提交按钮。您需要做的是将表单的属性方法设置为"post"方法,然后再次尝试运行代码......您的表单应如下所示...

.........