javascript - 使用表单提交操作传递 $_GET 变量

标签 javascript php html mysql forms

我正在尝试通过 URL 将表和数据库变量传递到新页面,以便我可以使用 $_GET 动态查询指定的数据库和表。我尝试使用 JavaScript 来保存变量并将它们附加到页面 window.onloaderror_logUndefined index: db & tbl我认为这意味着变量没有正确传递。

因此我问是否可以使用提交表单操作而不是使用 JavaScript 来传递这些变量?或者如何修复脚本以正确传递变量?

我的表单

    <form method="post" action="db_search.php">
        Search : <input type="text" name="name" id="name" autocomplete="off"
            value="<?php echo $val;?>"> <input type="submit" name="submit"
            id="submit" value="Search">
    </form>

db_search.php 中的脚本

function pageSet () {
    var yourTbl = window.sessionStorage.getItem("tbl");
    var yourDB = window.sessionStorage.getItem("db");
    window.location.href ='db_search.php?db=' + yourDB + '&tbl=' + yourTbl ;
};
window.onload=pageSet();

db_search.php 加载时,变量会附加到 URL,但页面会不断刷新。

最佳答案

您可以调整 PHP 以使用 $_REQUEST 并调整表单,如下所示:

<form method="post" action="db_search.php">
    <input type="hidden" name="db" value="<?php echo $_REQUEST['db'] ?>" />
    <input type="hidden" name="tbl" value="<?php echo $_REQUEST['tbl'] ?>" />
    Search : <input type="text" name="name" id="name" autocomplete="off"
        value="<?php echo $val;?>"> <input type="submit" name="submit"
        id="submit" value="Search">
</form>

这会将 $_GET 参数添加为 $_POST 参数。您的脚本将匹配 $_REQUEST 参数,因此 $_POST$_GET 出现的“db”都会被使用。在 $_REQUEST 中,$_POST 优先于 $_GET

具体化:

//You now match db like:
$db = $_GET['db'];

// Change that to
$db = $_REQUEST['db'];

这样无论是通过GET还是POST发送db,都会被填满

关于javascript - 使用表单提交操作传递 $_GET 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29118313/

相关文章:

javascript - 如何在javascript中重用函数

javascript - 验证多个提示是否都有值

javascript - 序列化包含循环对象值的对象

PHP exec() 性能

PhpStorm 发出有关 “Expected Class, got Class[]” 的警告

javascript - 在执行 Ajax 调用之前,对 DOM 的更改应该是可见的

html - 如何在我的案例中设置子元素边框

javascript - d3.js 双击不释放节点

php - 手动将数据添加到MySQL查询数组

javascript - 对话框不关闭