1

我有一个 DIV,我想:

  1. 当用户点击它时隐藏 div (display:none) (我已经解决了这部分)
  2. 更新 MySQL 数据库(这是我的问题所在)

我在 SO here上找到了这个脚本,我坐在文档的开头:

<script>
    function myScript(imageID)  { 
      url="updateDatabase.php?imageID=" + imageID;
      objX=new XMLHttpRequest();
      objX.open("GET",url,false);
      objX.send(null);
      response=objX.responseText;
      document.getElementById('image' + imageID).innerHTML=response;
    }
</script>

这是页面中的 DIV 代码,它使用代码中其他位置设置的 imageID 来确定要加载并传递给脚本的图像:

echo "
<div id=\"image".$imageID."\">
    <img
        src=\"images/".$imageID.".png\" 
        onclick=\"myScript(".$imageID.");
            document.getElementById('image".$imageID."').style.display = 'none'
    \">
</div>";

这是脚本引用的 updateDatabase.php 页面。这是 PHP 的一行代码,它引用了在我的代码中其他地方定义的函数,该函数在同一站点的其他地方成功使用。它运行一系列 MySQL 查询/插入/更新。

updateImage($_GET['imageID']);

我已经成功地让 DIV 在被点击时隐藏起来,但我似乎无法让它在同一步骤中更新数据库——这是我这里缺少的部分。

我知道我成功地传递了所需的 imageID,因为如果我选择的话,我可以在这个 updateDatabase.php 页面上正确地输出它。但是,我不能让它发生任何数据库活动。

据我所知,这需要混合使用 JQuery 和/或 AJAX。虽然我对 PHP/MySQL 有基本的了解,但这对我来说是全新的领域,因此非常感谢任何澄清。我也是 SO 的新手,如果我遗漏了重要信息或忽略了发布约定,请提前道歉 - 如果是这种情况,请告诉我。

4

3 回答 3

0

使用 jQuery。

onclick="myScript('.$imageID.')"

和功能:

function myScript(imageID) {
    $('#image'+imageID).hide();
    $.ajax({
      url: 'updateDatabase.php?imageID='+imageID;
      async: true,
      type: 'get',
      success: function(data) {
           $('#image'+imageID).html(data);
            $('#image'+imageID).show();
      },
      error: function(jqXHR,error, errorThrown) {  
           if(jqXHR.status&&jqXHR.status==400){
                alert(jqXHR.responseText); 
           }else{
               alert("Something went wrong");
           }
      }
   });

现在,data.response 将取决于返回的 JSON 的确切性质。如果不是 JSON 而是原始 HTML,那也没什么不同。查看http://api.jquery.com/jQuery.ajax/上的文档

于 2013-03-23T17:05:07.417 回答
0

试试jquery

$.ajax({
 url:"updateDatabase.php?imageID=" + imageID,
 type:"GET",//Default
 success:function(data, status){
   if(status){
     $("#'image"+ imageID).html(data);
     // do as per need
   }else{
    // else part
   }
 },
 error:function(-----){
--------------
 }
});

谢谢

于 2013-03-23T17:05:37.890 回答
0

我能够通过剖析本教程中的代码来解决这个问题,教程准确地演示了如何布置此类操作的“移动部分”。任何与我有类似问题的人都应该以此作为参考;它为每个示例页面提供了完整的无错误代码。

于 2013-03-24T03:56:44.947 回答