发送数据ajax


Sending data ajax

我有一个名为post-blog.php的页面,在这里我设置了一个博客条目。我将所有这些数据保存到一个变量中。它在数组中显示这些数据。

var data = title + content + image + datetime + categories;

如何将这些数据发送到另一个名为publish.php的页面,并将用户重定向到该页面?我曾尝试设置一个ajax来实现这一点,但它不起作用。有什么建议吗?

  $.ajax({
        type:   'POST',
        cache:    false,
        url:      'publish.php',
        data:     data,
        success:  function( data ) {
          alert ( data );
        }
      });
      return false;
    });

根据我对问题的理解,您需要将数据传递到一个新页面并打开该页面。

如果这是你的问题,那么这可以在没有AJAX的情况下完成,基本上AJAX甚至没有提供解决方案。相反,您可以将所有数据以如下查询格式传递到新页面-

var page = 'publish.php?title='+title+ '&content='+content+'&image='+image+ '&datetime='+datetime+'&categories='+categories;

然后只需将窗口位置更改为下方

window.location.href = page;

要在PHP文件中获取所有这些变量,请在顶部的publish.php中执行以下操作-

if($_GET['title'])
{
  $title = $_GET['title'];
}
// similarly get all the data in publish.php file and continue with your page

我假设您所有的变量都是字符串。如果不是,例如datetime可能是一个对象,请先将它们更改为字符串。

文档说Object必须是键/值对或字符串。

对象对此工作良好,请尝试以下操作:

var data = {title: title, content: content, image: image, datetime: datetime, categories: categories};

如果您的数据来自表单,请检查jQuery的serialize。

我从未尝试过在POST中作为字符串传递,但我的直觉是,它需要采用类似于通过url传递数据的格式。

var data = 'title=' + title + '&content=' + content;

还要记住,成功函数中的data与传递到php页面的内容不同。这是php页面将返回的内容。如果您的php页面什么都不返回,那么您的警报将为空。当我进行测试时,我喜欢在php文件中抛出类似echo $_POST['title'];的东西,以查看结果。

这里有一个类似的问题可能也会有所帮助。