使用ajax将表单发布到php而不刷新

时间:2014-09-09 15:12:31

标签: javascript php jquery ajax post

我写这篇文章是为了向PHP脚本发送一些变量:

$(function() {

$('a[class="removeUnread"]').click(function(){

   var markedtopicid = $(this).attr("id");
   var sessionvar     = \'', $context['session_var'], '\';
   var sessionid = \'', $context['session_id'], '\';


   $.ajax({
      url: "index.php?action=quickmod;board=', $context['current_board'], '", 
      type: "POST",
      data: sessionvar + "=" + sessionid + "&topics[]=" + markedtopicid + "&qaction=markread",
    });

});

});

我认为这是通过ajax发送帖子数据的正确方法,但它似乎并没有发送。我是否正确将代码包装在就绪函数中?

3 个答案:

答案 0 :(得分:1)

我可以直接告诉你,你的URL中不应该有quickmod和board之间的分号。我在这里回答因为我还不能发表评论。在Web开发中使用的一个很好的工具,特别是GET和POST请求是谷歌PostMan应用程序。它可以自由使用,它会做什么,它会显示你发送它的任何链接的确切输出。因此,您可以尝试将通过javascript制作的链接放入邮递员,看看它吐出的错误。

在这个例子中,我非常确定你的URL是各种各样的搞砸了。试试这个......

"index.php?action=quickmod&?board="+$context['current_board']
是的,我没有测试该链接,所以它可能无法正常工作。如果它不起作用,谷歌一些ajax示例和javascript字符串连接。你的字符串不适合ajax。

答案 1 :(得分:1)

应该是这样的......

$.ajax({
                url :'index.php',
                type : 'POST',
                data : { sessionvar: sessionid, topics:markedtopicid}, 
                success : function (data) {

                        },
                error : function () {

                        }

答案 2 :(得分:0)

尝试处理错误:

$.ajax({
      url: "index.php?action=quickmod;board=', $context['current_board'], '", 
      type: "POST",
      data: sessionvar + "=" + sessionid + "&topics[]=" + markedtopicid + "&qaction=markread",
    error: function (xhr, ajaxOptions, thrownError) {                
         alert(xhr.responseText);
     }
});