使用jQuery ajax响应数据
我正在使用ajaxpost并以html的forms接收数据。 我需要分割数据并在整个页面上放置数据。 我建立了我的响应数据,如
Hello there and Welcome
First timer visiting our site eh'
这有点复杂如果得到这个问题的答案,我可以弄清楚。 谢谢
$.ajax({ type:'POST', url: 'confirm.php', data: "really=yes&sure=yes", success:function(data){ //Need to split data here } });
更新 :刚刚意识到你应该这样做:
success:function(data) { data = $('').append(data); $('#greeting',data).appendTo('#one') $('#something',data).appendTo('#two') }
因为你不能正确使用.find
,因为它不是一个孩子,但如果你把它附加到一个空节点,你可以。 另一种选择是使用.filter
$.ajax({ type:'POST', url: 'confirm.php', data: "really=yes&sure=yes", success:function(data){ $('#greeting',data).appendTo('#one') $('#something',data).appendTo('#two') } });
您可以从data
中提取并追加到您想要的位置。 您也可以执行类似返回JSON的操作,而不是从html中提取html,只需从对象访问html即可。
$(data.greeting).appendTo('#one') $(data.something).appendTo('#two')
回应必须如下:
({ 'greeting':'html', 'something' :'other html' })
为什么不在confirm.php
中将答案串在一起? 字符,然后当字符串作为变量数据返回时,您可以使用datas = data.split("|")
将其拆分,并使用data[0]
, data[1]
等访问各个答案。
(如果您对JSON感到满意,Meder的响应将会起作用,但正则表达式可能更容易一些,并且可以正常工作。)
您可能需要使用正则表达式来分解响应文本。 例如,如果响应文本是:
Hello there and Welcome
First timer visiting our site eh'
然后你可以使用这样的一些JavaScript:
var greeting = response_text.match(/.*
/); var something = response_text.match(/.*
);
(这个网站非常适合学习正则表达式: http : //gskinner.com/RegExr/ )