我有一个表单,当用户提交此表单时,它应该将数据传递给使用AJAX的函数。然后,在对话框中将该结果显示给用户。我正在使用CakePHP(1.3)和jQuery来尝试完成这一任务,但我感觉我正在奔跑。使用AJAX,jQuery和CakePHP在对话框中显示消息
的形式最终将被用于与标签上传图片,但现在我只是想看到一个消息框弹出..
形式:
<?php
echo $this->Form->create('Image', array('type' => 'file', 'controller' => 'images',
'action' => 'upload', 'method' => 'post'));
echo $this->Form->input('Wallpaper', array('type' => 'file'));
echo $this->Form->input('Tags');
echo $this->Form->end('Upload!');
?>
的AJAX:
$(document).ready(function() {
$("#ImageUploadForm").submit(function() {
$.ajax({
type: "POST", url: "/images/upload/",
data: $(this).serialize(),
async: false,
success: function(html){
$("#dialog-modal").dialog({
$("#dialog-modal").append("<p>"+html+"</p>");
height: 140,
modal: true,
buttons: {
Ok: function() {
$(this).dialog('close');
}
}
})
}
});
return false;
});
});
注意:如果我把$.ajax
的,但$("#ImageUploadForm").submit(function() {
内$("#dialog-modal").dialog({ height: 140, modal: true });
外注释掉$.ajax
东西,我会看到一个对话框弹出,然后我必须点击它才能消失。在此之后,它不会给位置向前/images/upload/
是AJAX调用的方法:
public function upload()
{
$this->autoRender = false;
if ($this->RequestHandler->isAjax())
{
echo 'Hi!';
exit();
}
}
$这个 - > RequestHandler-> isAjax()似乎做任何绝对没有,或者它总是返回假。我从来没有以此作为条件输入if语句。
感谢您的帮助,如果您需要更多信息,请告诉我。
非常感谢,这工作完美。我对AJAX/jQuery有点新鲜,所以我认为它可能很简单。 – LainIwakura