2013-03-08 99 views
0

我是新的使用Jquery/Ajax/JSon,我想创建一个脚本,如果用户点击两个图标中的一个,可以更改mysql中的值。关于图片点击更改mysql值

我搜索了任何想法的唯一我不知道从哪里开始。 我使用smarty与苗条,我已经设置了一个页面datatables这很好。

我已经做成了一个数据表第2行图标,我想要的东西如果有可能,如果用户点击两个图标中的一个,而不离开页面值得到更新。我现在添加了一个像index.php/upd/del/1的href用于标记为已删除,index.php/upd/save/1用于保存。

后面更新我有一个阅读保存或德尔的功能和1是主意。

有人可以给我一个想法或一些地方,我可以找到这样的事情。

我希望我可以在这里问这个,感谢你已经帮我这个

+0

http://api.jquery.com/jQuery.ajax/ – 2013-03-08 20:07:23

回答

1
<a id="option1"><img src="image1.jpg" /></a> 
<a id="option2"><img src="image2.jpg" /></a> 

<script type="text/JavaScript"> 
$(function() { 
    $("#option1").click(function() { 
     $.post("index.php/upd/del/1", function(json) { 
       if (json && json.status) { 
        alert("Change made!"); 
       } else { 
        alert("something failed!"); 
       } 
      } 
     ); 
    }); 
    $("#option2").click(function() { 
     $.post("index.php/upd/save/1", function(json) { 
       if (json && json.status) { 
        alert("Change made!"); 
       } else { 
        alert("something failed!"); 
       } 
      } 
     ); 
    }); 
}); 
</script> 

现在,在你的PHP脚本:

<?php 
// In order for jquery to change the data we are returning to json, we should se the headers to json. 
// Also, it is important to notice that all the ajax request will work allways with utf-8 
// so if you don't want to have a lot of problems with accents and special chars, use allways utf-8 
header("Content-Type:application/json; Charset=utf-8"); 

// Make some really cool stuff with the data at mysql 
// But if something went wrong: 
if ($varToSetIfErrorOcurrs === true) { 
    return json_encode(array ("status" => false)); 
} 

return json_encode(array ("status" => true)); 

一些最后的考虑:

  • 总是使用HTML元素来表达他们的想法:img显示图像,而不是点击它们。 (锚点)点击它们。或按钮做出一些动作
  • JS最好放在页面的底部,因此所有的DOM在执行时都已经被加载
  • $(function(){});一旦DOM准备好就执行这段代码(只有html,document.onready一旦加载完成,包括图片在内,就会执行,所以速度更慢)

快乐编码!

+0

我已经尝试过这一点,但这并不适用于我的情况。 我觉得bequase我使用: \t \t \t { “MDATA”: “ID”, \t \t \t “mRender”:功能(数据,类型全){ \t \t \t \t回归 '

'; \t \t \t \t} 该脚本失败。 到目前为止,我想感谢您的帮助,我去寻找解决方案 – 2013-03-08 21:36:35

+0

在这种情况下,您需要添加一个侦听器'.on'与jquery。假设你的div父母(你渲染mRender的地方)是'

'。然后你需要使用jQuery'$(“#result”)。on(“click”,“#option1”,function(){/ * ajax配置在这里* /});'因为html是通过ajax加载的。 – Cito 2013-03-08 22:48:21

+1

我可以感谢你@AbrahamSustaita你的帮助和提示。 玩过脚本后,你发布我现在有一个我想要的工作脚本。 再次感谢您的帮助和提示 – 2013-03-10 18:52:13