我有一个名为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'];
的东西,以查看结果。
这里有一个类似的问题可能也会有所帮助。