我有一个从mysql生成表的网页。我在每行的开头都有一个按钮。我希望如此,如果用户决定按下按钮,则该行的内容将写入MySQL中的新表。
目前我正在考虑让按钮成为连接到mysql并将行插入表中的另一个php脚本的href;但是,我认为这将重定向我当前的页面。
我希望按钮能够运行脚本,而无需重定向当前页面。这样,用户可以继续分析表,而不必每次都重新加载页面。
这是我目前的表格。这只是一个片段,表格可能非常大(数百行)
答案 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¶m2=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模板中使用它