【问题标题】:Update database without reloading page更新数据库而不重新加载页面
【发布时间】:2010-09-03 06:52:43
【问题描述】:

我刚刚从 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>

和执行页面:

<?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 先感谢您!

【问题讨论】:

    标签: php javascript mysql ajax


    【解决方案1】:

    这就是我的想法。在 Firefox 中打开页面并打开 Firebug。打开“控制台”。

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

    【讨论】:

    • 这应该是评论,这不是答案(不过我同意这是解决此问题的方法)。
    • 从未使用过firebug,现在下载并尝试解决;)
    【解决方案2】:

    改变

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

    进入

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

    (引号内的引号引起了问题。)

    编辑:另外,更改:

    <script type="text/javasript">
    

    进入

    <script type="text/javascript">
    

    根据@Dave的建议,我用firebug追踪了问题,它说addItemToUsersList没有定义,所以我在内容中搜索它,发现&lt;script&gt;标签中的错字。

    【讨论】:

    • 感谢 aularon 我尝试删除 hte 引号,但还是一样,它没有激活链接??
    • 哎呀!谢谢。我按照戴夫的说法下载了萤火虫,然后一直点击,直到我在右下角看到一些错误!我可以看到 additemtouserslist 没有定义。我已将 sript 更改为脚本,取出引号但仍未定义。我是否在此处遗漏了一些引号-在功能上添加...位?
    • 抱歉,有点混乱:这个位
    • @Dan 你缺少逗号,就在'error': function(data) 之前,我可以从控制台上的萤火虫错误消息中看出,然后我复制了你的代码并尝试在控制台上执行它(你可以有一个带有箭头的更大控制台,然后使用CTRL+ENTER 执行),我不断更改代码以找出丢失的部分在哪里,直到我找到它,但它并没有花费太多时间,感谢firebug :)(再次感谢@戴夫提醒我们不仅要告诉解决方案,还要告诉我们如何解决)
    • 我会看看控制台的东西,javascript 和 ajax 是我从未玩过的东西,所以这是全新的。感谢您的解决方案!还有萤火虫!你们俩太棒了!! :)
    【解决方案3】:

    如果我没记错的话,您必须有一个“href”属性,浏览器才能将其识别为链接。尝试将href="javascript:void(0)" 添加到链接中。 # 会使页面刷新。

    更新:嗯,这对于不是“链接”是正确的,但是对于 jQuery,无论如何都应该触发该事件。我还是试试看。

    【讨论】:

    • 是的,你是对的。这个我忘记了,后来记起来了。谢谢戴夫
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-23
    • 2018-11-15
    • 1970-01-01
    • 2021-01-07
    • 1970-01-01
    相关资源
    最近更新 更多