单击链接时如何将信息发布到服务器?

时间:2010-09-16 00:01:35

标签: php database ajax post

好的,所以我希望我的用户能够点击一个链接,让他们可以将电影添加到他们喜欢的地方。

所以在示例中我有http://xxx.com/favorite.php?userid=1&movieid=1020

目前一切正常,它将值添加到数据库中,但由于它是电影,我不希望页面重新加载,因此使用我不熟悉的Ajax。

我用不同的方式做了一些工作,但从未成功过。

我之前在PHP问题上得到了很多帮助,如果它现在可以是相同的话那就太棒了!

基本上只需点击喜欢的图片(这是一个链接),当发布到数据库的操作完成后,再显示另一张图片。

我尝试了很多方法,包括JSON方法,但我知道GET方法可能容易受到攻击,但是它使用session +更高的安全性,所以我很确定它目前是安全的,我可以随时继续处理。

虽然我想通过一个很好的例子来了解一个很好的方法,因为我仍然没有想到它。

感谢你的回答!赞赏。

编辑:

如果没有,那么发布信息的最佳方式是什么?我找到的最好的方法就是get,因为我在AJAX / etc中并不是那么先进

同样在我的favorite.php文件中,信息正在提交给服务器,这就是重点。

2 个答案:

答案 0 :(得分:1)

您需要获取JQuery并将其安装在您的Web应用程序中(请参阅他们的入门文档)。在您的HTML中,您将拥有:

<div id="fav_12_345"><a href="javascript:void(null)" id="addfav">Favorite</a>

在你的javascript中:

$("a#addfav").onclick(function(ev) {
    data_id = $(ev).parent.id();
    $.post('someurl', { data_id: data_id }, function(res) {
        // this bit gets run once the call has been processed on the server
        if (res) {
            // update the new image
            $("img#blah").attr("src", 'someurl');
        }
       }, 'json');
 });

在你的PHP中

$data_id = your_sanitise_user_input($_REQUEST['data_id']);
$data = explode('_', $data_id);
$sql = "UPDATE table set fav_id=$data[1] where id=$data[0]";
$res = your_sql_lib_thing($sql);
print "{res: '$res'}";

所有这些代码都是近似的,语法上有缺陷但可能会给你一般的想法。

答案 1 :(得分:0)

如果您想获取数据,可以使用jQuery的.getJSON方法http://api.jquery.com/jQuery.getJSON/,或者如果您想发布数据,可以使用.post()方法http://api.jquery.com/jQuery.post/