2013-04-12 202 views
2

我目前正在设计一个系统,处理步骤(如航空公司预订,您通过各种步骤购买机票),这些步骤正在通过AJAX完成。因此,index.php文件是加载的唯一文件,并且正在通过主要的div上的AJAX加载页面。通过AJAX发送PHP变量

该系统正常工作,但我需要确保变量传递在随后加载的页面上,基于之前输入的数据。例如:

我有一个表格在页面1用户输入一些数据,如他的名字和国家。点击提交时,该按钮将触发一个AJAX请求,其结果是第2页的内容,正在加载到div上。但我需要第2页的变量填充第1页上的值。第2页有另一种新数据形式和另一个提交按钮。点击后,它通过AJAX请求页面3,页面3必须包含页面1和页面2上的变量。依此类推。

哪种方式最聪明?使用PHP会话?通过$ .get$ .post

我要求你的意见。

非常感谢。

+0

如果您使用的是同一页面,但每个页面使用不同的数据并且正在使用ajax,那么为什么不将每次提交的值存储在js变量中并随后使用它? 一个更有针对性的问题是,你在这里如何实现ajax?使用任何js库? – redDevil

+0

我正在使用jQuery。但是我不能将这些变量存储在js上,因为*一步之间就有了对这些数据的大量处理,使用数据库和多个HTTP和XML请求来解析最终数据。由于我在这方面使用PHP(并且处理工具已经完成),所以使用PHP会很快完成*我的服务。 –

+0

所以page2的数据取决于对后端page1数据的处理,而不仅仅是直接对page1数据进行处理? 如果是这样的话,您可以在php脚本中准备必要的数据,并将其作为响应传递回ajax调用(您可以使用json处理数据),然后使用js为page2准备字段并显示它... – redDevil

回答

8

如果您正在使用像jQuery库 - 最简单的办法是通过变量作为POST或GET参数,请参阅:http://api.jquery.com/jQuery.ajax/

例如:

$.ajax({ 
    type: "POST", 
    url: "some.php", 
    data: { name: "John", location: "Boston" } 
    }).done(function(msg) { 
    alert("Data Saved: " + msg); 
}); 

您可以更改type根据您的需要进行GET或POST,data键应该保存您希望发送的数据。 (JSON格式)

如何将PHP数据作为JSON传递给JS,看到passing php variable

1

我会去的jQuery

$.post 

选项。 http://api.jquery.com/jQuery.post/ 将所有变量传递给您的PHP脚本,并让该PHP脚本生成div的新内容(下一步),其中包含所有变量(新增加的内容)。如果有变量应该被转移,但不会显示给访问者,使用隐藏的字段来转移它们。 BTW:获取的所有输入的内容通过jQuery的形式,使用

serialize() 

http://api.jquery.com/serialize/ 他们一起工作就像一个魅力!

+0

为什么downvote没有任何评论? – Borniet

+0

隐藏字段不显示在浏览器上,但用户仍然可以查看和更改它们如果需要的话。 – redDevil

+0

如果有信息不应该是“可变的”,您仍然可以在会话变量中设置该信息。 – Borniet