我要做的是调用php类来更新连接的mysql数据库,而不更改页面。我想我可以用Ajax做到,但我不确定。我看过很多使用表单的例子,但我正在寻找一个简单的<a href="#">link</a>
。
答案 0 :(得分:1)
要扩展Khez的评论,使用jquery你可以使用类似的东西:
<html>
<head>
<script type="text/javascript" src="PathToJquery"></script>
<script type="text/javascript">
$(document).ready (function ()
{
$('#elID').click(function ()
{
$.get('urlToChangeDB?variable=value');
}
}
</script>
</head>
<body>
<a href="#" id="elID">Link</a>
</body>
</html>
您需要包含jquery libray
答案 1 :(得分:0)
最简单的方法是使用一些Ajax,可能是通过JQuery。一个简单的例子就是采用像
这样的形式form.php的
<form id="ratingform" name="ratingform">
<input type="text" id="id" name="id" />
<input type="text" id="rating" name="rating" />
<input type="submit" id="loginsubmit" name="loginsubmit" value="Submit!" />
</form>
然后将其与一些JQuery链接以拦截表单,并将其发送到PHP文件
的jquery.js
$(document).ready(function(){
$("#ratingform").submit(function(event) {
$.ajax({
type: "POST",
url: "rate.php",
data: $('#ratingform').serialize(),
datatype: "json",
success: function(data){
var ret = jQuery.parseJSON(data);
if(ret.result == "true")
// Success
else
// Failure
}
});
event.preventDefault();
});
});
然后,创建PHP文件以解释它
rate.php
$stmt = $sql->dbh->prepare("INSERT INTO `rating` (`ID`, `Rating`) VALUES (:id, :rating)");
$stmt->bindValue(':id', $_POST['id']);
$stmt->bindValue(':rating', $_POST['rating']);
$result = $stmt->execute();
echo json_encode(array('result' => "{$result}"));
die();
基本上,JQuery拦截表单操作并取消它,然后使用serialize()
打包数据并将其设置为rate.php
作为POST数据。然后rate.php
将其作为正常的POST提交进行处理,echo()
jSON编码结果为“true”或“false”,具体取决于SQL查询是否成功,将其发送回JQuery脚本。 JQuery解释JSON对象,然后根据SQL Query是否成功执行操作。