更新数据库而不重新加载页面

时间:2010-09-02 22:22:33

标签: php javascript mysql ajax

我刚从Sandeepan得到了一些很棒的帮助,谢谢!

任何人都可以看到我做错了....

<head>
<script type="text/javascript" src="jquery-1.4.2.js"></script>
<script type="text/javasript">

function addItemToUsersList(itemId)
{
  $.ajax({
      'url': 'member-bucketadd-execTEST.php', 
       'type': 'GET',
      'dataType': 'json', 
      'data': {itemid: itemId}, 
       'success': function(data) 
       {
           if(data.status)
           {
               if(data.added)
                {
                        $("span#success"+itemId).attr("innerHTML","Item added to your personal list");
                 }
                 else
                 {
                        $("span#success"+itemId).attr("innerHTML","This item is already on your list");
                }
            }
       },
       beforeSend: function() 
         {
               $("span#success"+itemId).attr("innerHTML","Adding item to your bucketlist...");
         }
          'error': function(data) 
          {
          // what happens if the request fails.
            $("span#success"+itemId).attr("innerHTML","An error occureed");
        }
});
                  }
     </script>

</head>

然后按下按钮激活以下功能:

   <a onclick='addItemToUsersList("<?php echo $itemid ; ?>")'> Add<img src='images/plus-green.png' /> </a>

和exec页面:

<?php 

if($bucketlist < 1) 
 {
    mysql_query("INSERT INTO membersbuckets (memberbucketid, userid, bucketid, complete)
    VALUES ('', '$userid', '$_GET['itemId]', '0')");
        return json_encode(array("status" => true, "added" => true));
 }
 else
 {
        return json_encode(array("status" => true, "added" => false));
 }



//echo "You are being directed to your bucket list, please wait a few moments...<meta http-equiv='Refresh' content='2; URL=mybucketlist.php'/>";
?> 

链接显示为链接,但点击它们没有任何反应!这是我正在进行的测试页http://olbl.co.uk/showbucketsTEST.php 先感谢您!

3 个答案:

答案 0 :(得分:5)

以下是我如何弄清楚的。打开Firebug,在Firefox中打开页面。打开“控制台”。

如果是Javascript错误,你会看到它。 Firebug也显示ajax流量,因此您可以打开ajax请求并查看是否出现服务器错误。

答案 1 :(得分:2)

变化

<a onclick="addItemToUsersList("<?php echo $itemid ; ?>")">

<a onclick="addItemToUsersList(<?php echo $itemid ; ?>)">

(引号内的引号导致问题。)

编辑:此外,请更改:

<script type="text/javasript">

<script type="text/javascript">

正如@Dave建议的那样,我用firebug跟踪了这个问题,并且说addItemToUsersList没有定义,所以我在内容中搜索了它,发现了<script>标签中的拼写错误。 / p>

答案 2 :(得分:-1)

如果我没弄错,你必须拥有一个'href'属性,浏览器才能将其识别为链接。尝试将href="javascript:void(0)"添加到链接。 #会刷新页面。

更新:嗯,关于不是'链接'这是真的,但是对于jQuery,事件应该触发,无论如何。我还是试试。