在图像上单击更改mysql值

时间:2013-03-08 20:03:53

标签: php mysql ajax json onclick

我是使用Jquery / Ajax / JSon的新手,如果用户点击其中一个图标,我想创建一个更改mysql值的脚本。

我搜索过任何想法,但我不确切知道从哪里开始。 我使用smarty with slim,我已经设置了一个带有数据表的页面,这很有用。

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

后面的upd我有一个读取save或del的功能,1就是这个想法。

有人可以给我一个想法或某个地方,我可以找到这样的东西。

我希望我能在这里问这个问题,并且已经感谢你帮助我了解这个

1 个答案:

答案 0 :(得分: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显示图像,而不是点击它们。 a(锚点)点击它们。或按钮进行一些操作
  • JS最好位于页面底部,因此所有DOM在执行时都已加载
  • $(function(){});一旦DOM准备好就执行那段代码(只有html,document.onready在加载所有内容后执行,包括图像,因此速度较慢)

快乐的编码!