5

我有一个从 mysql 生成表的网页。我在每一行的开头都有一个按钮。我希望这样,如果用户决定按下按钮,则该单独行的内容将写入 MySQL 中的新表。

目前我正在考虑让按钮成为另一个连接到mysql并将行插入表的php脚本的href;但是,我认为这将重定向我当前的页面。

我希望按钮运行脚本,而不重定向我的当前页面。这样,用户可以继续分析表格,而不必每次都重新加载页面。

这就是我当前的表的样子。这只是一个片段,表格可能非常大(数百行) 在此处输入图像描述

4

4 回答 4

9

为了做这个客户端,我可以想到几种方法来做到这一点:

Javascript

您可以包含一个 Javascript 库(如曾经流行的 JQuery 库),或自己编写代码,但您可以将其实现为 XMLHTTPRequest,从按钮上的单击处理程序发出。使用库将是最简单的方法。

一个 iframe

创建一个隐藏的 iframe:

<iframe style="display:none;" name="target"></iframe>

然后只需将标签的目标设置为 iframe:

<a href="your_script.php" target="target">...</a>

每当有人点击链接时,页面将被加载到隐藏的 iframe 中。用户不会看到任何变化,但您的 PHP 脚本将被处理。

在这两个选项中,我推荐使用 Javascript 库,除非由于某种原因你不能这样做。

于 2012-08-14T18:24:06.000 回答
0

您需要在单击按钮时向 mysql 表中插入一条记录,而无需重新加载页面。为了完成上述任务,您需要使用 AJAX,它将使用 xmlhttprequest 对象在后台向服务器发送 http 请求,从而在不重新加载网页的情况下更新网页。因此,您必须在 javascript 中创建一个函数,该函数将使用 xmlhttprequest 对象向服务器发送 http 请求,并且您还需要定义服务器端处理程序来处理使用 ajax 发送的 http 请求。关于 ajax 与 php 的实现细节,请参考下面链接中提到的示例 http://www.w3schools.com/php/php_ajax_php.asp

于 2012-08-14T18:31:52.307 回答
0

使用 jQuery 很容易做到:

<script>
$(function(){
    $('#your_button_dom_id').click(function(){
        $.ajax({
            url: 'your_php_script_url',
            type: 'POST', // GET or POST
            data: 'param1=value1&param2=value2', // will be in $_POST on PHP side
            success: function(data) { // data is the response from your php script
                // This function is called if your AJAX query was successful
                alert("Response is: " + data);
            },
            error: function() {
                // This callback is called if your AJAX query has failed
                alert("Error!");
            }
        });
    });
});
</script>

您可以在此处阅读有关 jQuery 中 AJAX 的更多信息:http: //api.jquery.com/jQuery.ajax/

于 2012-08-14T20:33:45.330 回答
0

您可以在具有隐藏类型的提交按钮之后使用另一个输入标签。

<input class="ButtonSubmit" type="Submit" name="Submit" id="Submit" value="Submit"/>

    </p>
        <input type="hidden" name="submitted" id="submitted" value="true" />

之后在你的代码顶部使用这个

if (isset($_POST['submitted'])) {
// your code is here
}

这对我有用。您也可以在 wordpress 模板中使用它

于 2016-06-15T10:32:21.613 回答