Ajax成功函数和独特的DivID

时间:2016-07-20 15:28:17

标签: javascript php jquery html ajax

这实际上是一个两部分问题。我有一个运行SQL查询的while循环,并打印出在数据库中找到的文章数量。

    <div class='dislike_box'>
       <a href='#' class='counter'>
       <img src='img/dislike.png' class='vote'></a>
       <p class='vote_text'>$dislike_num</p>
        <p style='color: #EC2800;'>$dislike_username</p>
    </div>

    <script>
        $('.dislike_box a').click(function(event){
        event.preventDefault();
        $.ajax({
           url: 'vote.php?vote=dislike&title=$title', 
           success: function(result){
            $('.dislike_box p.vote_text').text('Got it.');
        }});
    });

    </script>
  1. 该脚本位于另一个文件中。问题是,当点击锚标记时,页面上的所有div p.vote_text都会更新,当我只想更新特定的那个时。

  2. 我的第二个问题是,是否有一种方法可以在php文件中重新获得一个值,从而使得&#39;成功&#39; ajax方法中的函数没有执行,比如说他们没有登录,所以我不想让他们投票。

  3. 感谢您的帮助,我会给予正确答案。此外,如果您需要更多信息,我将很乐意提供。

    我已经解决了问题2并返回:

             header('HTTP/1.1 500 Internal Server Booboo');
             header('Content-Type: application/json; charset=UTF-8');
             die(json_encode(array('message' => 'ERROR', 'code' => 1337)));
    

    失败。

    修改的 除非我运行这个,否则我的一切工作正常:

      $('.dislike_box a').click(function(event){
        event.preventDefault();
        var title = $(this).data('title');
        alert("You don't like: "+ title);
        $.ajax({
        url: 'vote.php?vote=dislike&title=title', 
        success: function(result){
            $('.dislike_box p.vote_text').text('Dont Like it.');
        }});
    });
    

    警告框显示正确的标题,但php函数实际上是将字符串&#34; title&#34;进入数据库而不是变量。

1 个答案:

答案 0 :(得分:1)

  1. 选择.vote_text的方式是错误的:.dislike_box p.vote_text选择所有框。您的点击功能应该接受一个参数,以便可以定位a的父级。
  2. 让我们假设你通过id编号问题:

    操作按钮上的操作应为:

    $('form').keydown(function (e) {
         if (e.which === 13) {
             e.preventDefault();
         }
    });
    
    $('.inputs').keydown(function (e) {
         if (e.which === 13) {
             var index = $('.inputs').index(this) + 1;
             $('.inputs').eq(index).focus();
         }
     });
    
    1. 这是一个PHP问题。如果答案是“失败”,您应该返回403 Forbiden访问错误(https://en.wikipedia.org/wiki/HTTP_403)或其他一些错误。