Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ajax/jQuery“;例如;按钮_Javascript_Jquery_Ajax_Sql Like - Fatal编程技术网

Javascript Ajax/jQuery“;例如;按钮

Javascript Ajax/jQuery“;例如;按钮,javascript,jquery,ajax,sql-like,Javascript,Jquery,Ajax,Sql Like,我对JavaScript非常陌生,我一直在试验基本的jQuery和ajax功能,现在我正在尝试在我的网站上为配置文件创建一个“Like”或“Rep”按钮,我已经编写了一个相当基本的代码,但是它不起作用,因为当我点击按钮时,它似乎不会发布任何内容 这是我的JavaScript(我的页面上嵌入了最新的jQuery): $(函数(){ $(“.rep”)。在(“单击”,函数(){ $.ajax({ 类型:“POST”, url:“add.php”, 数据:({profile:$(“.rep”).at

我对JavaScript非常陌生,我一直在试验基本的jQuery和ajax功能,现在我正在尝试在我的网站上为配置文件创建一个“Like”或“Rep”按钮,我已经编写了一个相当基本的代码,但是它不起作用,因为当我点击按钮时,它似乎不会发布任何内容

这是我的JavaScript(我的页面上嵌入了最新的jQuery):


$(函数(){
$(“.rep”)。在(“单击”,函数(){
$.ajax({
类型:“POST”,
url:“add.php”,
数据:({profile:$(“.rep”).attr('id')}),
成功:功能(数据){
如果(data.status==“成功”){
$('.rep').html('N');
}否则{
$('.rep').html('N');
}
}
})
});
});
现在,我的HTML元素:

<div class="rep" id="Username">O</div>
O
最后是我的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';
        }
    }
?>
从版本1.9起,jQuery live()已从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;
看看是否有效。

使用此格式

$(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;
});
首先,chage.html('n')到.text('n')

添加到ajax函数中

error: function (error) {
                  console.log(error); //or alert(error);
              }

您将收到响应

您需要在php文件中回显结果,以便javascript在数据参数中收到正确的结果

不会分析:$(“.rep”).attr('id')只返回“Username”?Try:$(“.rep”).html()它应该返回用户名,这就是我要发布的内容,一旦脚本完成,我将用实际的配置文件用户名填充该属性。对不起,我发布了旧代码,我已经修复了它,元素的状态将如我所愿更改为“N”,但对于错误,它也会这样做(我将“E”放在这可能是php文件中的一个错误,您可以判断是否在浏览器中检查了响应。在Chrome中,您可以使用查看>开发人员>开发人员工具,然后选择网络以查看请求和响应。我的直觉是mysql抛出了一个错误,因为值没有正确转义。我通常使用数据库抽象库或ORM与数据库交互,因为它处理所有这些内容。你会把它分类:)我添加了这个,但在JavaScript控制台中没有收到任何东西,这肯定是PHP的问题。所以,你没有错误)也许可以使用json_编码$data['bla']你在表单上有多少个O?只有那个,没有其他的-你知道会有什么错误吗?你能试试(data.status='success'){$('rep')。text('s'))}否则{$('.rep').text('e');},您的div将给出文本's'或'e'?类似>,但在id标记中,配置文件及其将工作。我已经修复了您放置id而不是id的位置,它仍然不工作,我认为它是我的PHP。请确保此变量$to=$\u POST[“profile”]$from=$myUser;写信给我,你没有任何修改的“rep”的HTML代码
error: function (error) {
                  console.log(error); //or alert(error);
              }