我正在建立一个与Grails建立社交网络并被卡住的人
为用户提供内部编辑资料
页面有机会将youtube-Url粘贴到文本字段中,然后点击一个按钮,刷新粘贴的URL中的ID,将触发ajax帖子,更新带有youtube视频预览图像的div
html看起来像:
<g:textField name="videoinput" class="videoinput reLef" value="" />
<span class="daten_videouploadbtn reLef" ></span>
<g:render template="/forms/storedVideos" />
JS看起来像:
$('.daten_videouploadbtn').click(function() {
var string = document.editProfileForm.videoinput.value;
var neu = string.replace(/http[s]?:\/\/(?:[^\.]+\.)*(?:youtube\.com\/(?:v\/|watch\?(?:.*?\&)?v=|embed\/)|youtu.be\/)([\w\-\_]+)/i, '$1');
var id = RegExp.$1;
jQuery.ajax({
type:'POST',
data:RegExp.$1,
url:'${createLink(action: 'addVideo')}',
success:function(data,textStatus){jQuery('#storedvideos').html(data);},
error:function(XMLHttpRequest,textStatus,errorThrown){}
});
});
控制器看起来像:
def addVideo() {
def videoitems = !!%%-- HOW TO PARSE YOUTUBE-ID HERE -%%!!
render(template:"/forms/storedVideos", model: [newVideo:videoitems])
}
和存储的视频看起来:
<div id="storedvideos"><span><img src="http://img.youtube.com/vi/${newVideo}/default.jpg" width="225px" height="130px"/></span></div>
我只是不知道如何捕获Ajax Post的数据并使用id为里面的预览图像更新div,
有人能暗示一下吗?它杀了我
解决方法:
你应该发布这样的数据:
jQuery.ajax({
type: 'POST',
data: { value: RegExp.$1 },
...
之后,您可以使用params.value访问grails控制器内的发布数据.