0

我是使用 Jquery/Ajax/JSon 的新手,如果用户单击两个图标之一,我想制作一个脚本来更改 mysql 中的值。

我已经搜索了任何想法,只是我不知道从哪里开始。我将 smarty 与 slim 一起使用,并且我已经设置了一个带有数据表的页面,这很好用。

我已经制作了一个数据表第 2 行图标,如果有可能如果用户单击两个图标之一而不离开页面,则值正在更新。我现在添加了像 index.php/upd/del/1 这样的 aa href 来标记为已删除,并添加了 index.php/upd/save/1 来保存。

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

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

我希望我可以在这里问这个问题,并感谢你帮助我解决这个问题

4

1 回答 1

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 都已经加载完毕
  • $(函数() {}); 一旦 DOM 准备好就执行那段代码(只有 html,document.onready 在所有内容都加载后执行,包括图像,因此速度较慢)

快乐编码!

于 2013-03-08T20:20:35.630 回答