php - 为什么我的 Ajax 发布脚本不起作用?

标签 php ajax jquery ajaxcontroltoolkit

我几乎没有创建一个脚本(因为我只是 ajax 的初学者),事实上我已经从某个地方复制了它的某些部分(ajax 脚本)。但是,当我单击链接(投票赞成/投票反对)时,没有任何反应,甚至 Mysql 数据库中的值也没有更改,但是单击提交按钮时,我的 MySql 数据库中发生了更改!这是我的代码--

-:::- HTML 部分 (test.php) -:::-

<html>
       <title>
               TEST
       </title>
       <head>
              <script type="text/javascript" src="jquery.1.4.4.js"></script>
              <script type="text/javascript">
                        function vote(type)
                        {
                          $.ajax({
                              'url': 'test.func.php',
                              'type': 'POST',
                              'dataType': 'json', 
                              'data': {type: type},
                              'success': function(data)
                               {
                                   if(data.status)
                                   {
                                       if(data.voted)
                                        {
                                             $(document).ready(function () {
                                               $("span#status"+type).attr("innerHTML","You have voted up!");
                                             });
                                        }
                                        else
                                        {
                                             $(document).ready(function () {
                                               $("span#status"+type).attr("innerHTML","You have voted Down!");
                                             });
                                        }
                                    }
                               },
                               beforeSend: function()
                                 {
                                      $(document).ready(function () {
                                       $("span#status"+type).attr("innerHTML","Voting....");
                                      });
                                 },
                                  'error': function(data)
                                  {
                                    $(document).ready(function () {
                                      $("span#status"+type).attr("innerHTML","An error occureed");
                                    });
                                  }
                                });
                          }
                </script>
       </head>
       <body>
              <a href="#" onclick="vote('up')" > Vote Up </a>
              <span id="status_up" ></span>
              <br>
              OR
              </br>
              <a href="#" onclick="vote('down')" > Vote Down </a>
              <span id="status_down" ></span>
       </body>
</html>

-:::- PHP 部分 (test.func.php) -:::-

<?php

    function db_connect($i)
    {
         if(isset($i))
         {
              if(mysql_connect('localhost', 'root', 'root'))
              {
                   if(mysql_select_db($i))
                   {
                        return;
                   }
                   else
                   {
                        echo 'ERROR';
                   }
              }
              else
              {
                  echo 'ERROR';
              }
         }
         else
         {
             echo 'ERROR';
         }
    }
if($_POST)
{
 db_connect('tests');
 $vote_type=$_POST['type'];
 $post_id = '123';
 $query = mysql_query("SELECT * FROM test WHERE post_id='$post_id'");
 $cur_vote_get = mysql_fetch_array($query);
 $vote_up = $cur_vote_get['votes']+1;
 $vote_down = $cur_vote_get['votes']-1;
 if($vote_type=='up')
 {
   mysql_query("UPDATE test SET votes='$vote_up' WHERE post_id='$post_id'");
   return json_encode(array("status" => true, "voted" => true));
 }
 elseif($vote_type=='down')
 {
   mysql_query("UPDATE test SET votes='$vote_down' WHERE post_id='$post_id'");
   return json_encode(array("status" => true, "voted" => false));
 }
}

?>

JavaScript 错误已解决!

一切都解决了!

由于我对 Ajax 非常陌生,所以我无法找到任何解决方案。

最佳答案

如果这完全是您的代码(我的意思是,如果您只是从真实的 .php 文件中复制/粘贴它),则第一个 .php 文档的第二个脚本 block 中存在拼写错误。

javasript -> javasCript

尝试一下。

关于php - 为什么我的 Ajax 发布脚本不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5605133/

相关文章:

javascript - JQuery 追加是关闭表单标签

javascript - IE11 无法获取未定义或空引用的属性 'value'

php - 删除没有 Array_Unique 的数组元素

ajax - 如何在 ajax POST 请求中设置 header 以包含 CSRF token

javascript - 通过 HTTPS 页面的 HTTP Ajax 请求

javascript - 无法使用 JQuery 显示模态框

javascript - 在 jquery 中旋转图像时需要概念?

php - 执行对用户 readonlyuser 拒绝的命令

php - 相乘并输出和 mysql php

javascript - jQuery AJAX JSON 数据被扁平化