【发布时间】:2015-03-03 12:43:45
【问题描述】:
我有一个表单,它位于使用 jquery UI 创建的对话框中。我正在尝试使用 jquery.ajax() 请求将表单发送到 php 控制器,但是 我希望像从 php 页面提交并执行控制器一样处理请求(不仅使用 AJAX 获得响应)。
原因是因为我想在请求中添加不在表单本身中的附加数据,而且我似乎更容易用 jquery 添加它。
这是表格:
<form action="">
<fieldset>
<div class="form-group">
<label id="name">Soci:</label>
<p id="soci_data"></p>
</div>
<div class="form-group">
<label id="month">Mes:</label>
<p id="mes_data"></p>
</div>
<div id="dropdown_payed"class="form-group">
<select id="selectbasic" name="selectbasic" class="input-small">
<option>payed</option>
<option>not payed</option>
</select>
</div>
<div class="form-group">
<input type="submit" value="Update">
</div>
</fieldset>
</form>
我要提交的唯一表单字段是下拉菜单。
这是.ajax() 请求:
$("form").submit(function(){
$.ajax({
type:"POST",
url:"update.php",
data:{
id_month:idmonth,
id_name:idname,
payed: $("#dropdown_payed").val();
}
success:function(data){
// To do when the request succeded
}
});
控制器update.php 现在只打印请求中传递的信息,以查看是否获得了我期望的数据:
print_r($_POST);
【问题讨论】:
-
> 我希望像从 php 页面提交的请求一样处理请求,并且执行控制器不仅使用 AJAX 获得响应。没明白。你能澄清一下吗?
-
@FernandoCarvalhosa 我不知道该如何解释。我的意思是,如果它是通过一个没有任何 javascript 的具有此属性的按钮提交的:
<form action="update.php" method="post"><button type="submit" </button> -
可以通过ajax或者普通请求从服务端获取相同的数据,区别在于客户端对响应的处理。如果您提交
<form action="update.php">,客户端会将您重定向到该页面并呈现来自 update.php 控制器的响应。这就是你想要发生的事情? -
也许 jQuery 表单插件会帮助你jquery.malsup.com/form
-
@FernandoCarvalhosa 是的,这可以解决问题,我将带有 jquery 的值添加到加载后的隐藏输入中,然后使用按钮提交标准请求。我没想到。非常感谢!