运行php脚本而不更改当前页面的按钮

时间:2012-08-14 18:11:45

标签: php html

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

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

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

这是我目前的表格。这只是一个片段,表格可能非常大(数百行) enter image description here

4 个答案:

答案 0 :(得分:8)

为了做到这个客户端,有几种方法我可以想到这样做:

<强>的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库。

答案 1 :(得分:0)

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

答案 2 :(得分: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/

答案 3 :(得分: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模板中使用它