我正在开发一个使用大量 Ajax 的网站,并使用 codeigniter 来构建它。
我有一个带有 post 方法的表单,并且该表单是使用 ajax 请求发布的,该请求使用 if/else 语句调用函数,如下所示:
if(isset($_POST['save']))
{
$data['phase'] = 'translating';
}
elseif(isset($_POST['submit']))
{
$data['phase'] = 'waiting_approve';
}
if/else 语句检查哪个按钮被点击,并且在以通常的方式发布表单数据后它可以 100% 工作,但在使用 ajax 请求发布它时永远不会工作。< br/> 我的ajax请求:
$('#workspace-content').delegate('form#article', 'submit', function(){
var that = $('form#article'),
url = that.attr('action'),
type = that.attr('method'),
data = {};
data = that.serialize();
$.ajax({
type: type,
url : url,
data : data,
dataType: 'json',
success: function(data){
$('#header-search-field').append(data.msg).delay(3000).fadeOut(500, function(){
var that = $(this);
that.html('').fadeIn();
});
}
});
return false;
});
有什么建议或解决方案吗?!!
<小时/>HTML 表单:
<button id="save-article" type="submit" name="save" class="btn btn-info btn-xs pull-left">
<span class="glyphicon glyphicon-floppy-save"></span>
</button>
<input name="title" type="text" value="<?php echo $work->title;?>" class="form-control" id="title" placeholder="" />
<textarea row="10" name="article" class="form-control" id="article" placeholder=""><?php echo $work->article;?></textarea>
<button id="submit-article" type="submit" name="submit" class="btn btn-info btn-block">Send</button>
<input name="slug" type="hidden" value="<?php echo $work->slug;?>" />
最佳答案
当您正常提交表单时,用于提交表单的按钮将包含在 POST 数据中。但是,当您使用 AJAX 提交并使用 that.serialize()
时,POST 数据仅包含输入字段 - 不包含提交按钮。您需要将提交代码附加到按钮,以便可以向数据添加适当的值。
$('#workspace-content').on('click', 'form#article .btn', function(){
var that = $(this).closest("form"),
url = that.attr('action'),
type = that.attr('method'),
data = that.serialize();
data += '&' + this.name + '=1';
$.ajax({
type: type,
url : url,
data : data,
dataType: 'json',
success: function(data){
$('#header-search-field').append(data.msg).delay(3000).fadeOut(500, function(){
var that = $(this);
that.html('').fadeIn();
});
}
});
return false;
});
关于javascript - php 脚本中的 if/else 不适用于 ajax 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34552788/