我是JavaScript的新手,我一直在尝试基本的jQuery和ajax函数,现在我想在我的网站上为个人资料创建一个“赞”或“代表”按钮,我写了一个漂亮的基本代码,但它不起作用,因为当我点击按钮时似乎没有发布任何内容。
这是我的JavaScript(我的页面上嵌入了最新的jQuery):
<script>
$(function(){
$(".rep").on("click", function(){
$.ajax({
type: "POST",
url: "add.php",
data: ({ profile: $(".rep").attr('id') }),
success: function(data) {
if(data.status == 'success') {
$('.rep').html('N');
} else {
$('.rep').html('N');
}
}
})
});
});
</script>
现在我的HTML元素:
<div class="rep" id="Username">O</div>
最后是我的PHP脚本:
<?php
include ("config.php");
$to = $_POST["profile"];
$from = $myUser;
$ip = $_SERVER["REMOTE_ADDR"];
$date = date("M j, Y");
if($to !== "" && $from !==""){
$q = mysql_query("SELECT * FROM rep WHERE to='$to' AND from='$from' AND date = '$date'");
$n = mysql_num_rows($q);
if($n == 0){
$query = mysql_query("INSERT INTO rep (to, from, ip, date) VALUES ('$to', '$from', '$ip', '$date')");
if($query){
$data['status'] = 'success';
} else {
$data['status'] = 'error';
}
} else if($n !== 0){
$data['status'] = 'error';
}
}
?>
真的无法理解这一点,所以如果有人能指出我正确的方向,同时解释错误,那就太好了!
答案 0 :(得分:1)
jQuery live()从版本1.9开始从jQuery中删除。
尝试点击()或开启('点击')
编辑(这不是问题)
php文件需要返回一个json编码的字符串,如下所示:
{name: 'bob', success: true, some_property: 'a string'}
依此类推,以获取返回数据中所需的所有值。
我通常这样做:
$data['success'] = true; // not needed for jquery but if you want to check it
$data['name'] = 'bob';
echo json_encode($data);
exit;
看看是否有效。
答案 1 :(得分:0)
使用此格式
$(document).on("click", ".rep", function () {
var id = $(this).attr('id');
var s = {
"profile": d
};
$.ajax({
url: "add.php",
type: "POST",
data: s,
success: function (data) {
// but what you want
},
});
return false;
});
答案 2 :(得分:0)
首先,将.html('n')更改为.text('n');
添加到你的ajax功能
error: function (error) {
console.log(error); //or alert(error);
}
您将收到回复
答案 3 :(得分:0)
你需要在php文件中回显结果,以便javascript在数据参数中收到正确的结果