我在我的网站上使用了一个jquery插件。我想首先验证表单,然后将另一个数据发送给控制器,但不通过表单。首先验证是已经返回成功反馈。但是当第二个发送时,没有任何反馈回报。这是我的代码
route.php
Route::controller('designs', 'DesignsController');
DesignsController.php
public function postTest() {
$validator = Validator::make(Input::all(), Design::$rules);
if ($validator->passes()) {
$response = array(
'status' => 'success'
);
return Response::json( $response );
}
$response = array(
'status' => 'fail'
);
return Response::json( $response );
}
public function postSaveimage() {
//Save Image complete return $success=1
if($success)
$response = array(
'status' => 'save image success'
);
else
$response = array(
'status' => 'Fail'
);
return Response::json( $response );
}
jquery的
$('#design_form').on( 'submit' ,function() {
//Validate First form data
$.post(
$( this ).prop( 'action' ),
{
"_token": $( this ).find( 'input[name=_token]' ).val(),
"category_id": $( '#form_category_id' ).val(),
"title": $( '#form_title' ).val(),
"user_id": $( '#form_user_id' ).val(),
},
function( data ) {
//if validate fail
if(data.status=='fail')
{
alert('data.status');
}
//if validate pass
else
{
//Sent second data
$.post("designs/saveimage",
{
"_token": $( this ).find( 'input[name=_token]' ).val(),
'base64_image': yourDesigner.getProductDataURL()
}, function(data) {
if(data) {
alert(JSON.stringify(data));
}
else {
alert('fail!');
}
});
}
},
'json'
);
return false;
});
答案 0 :(得分:1)
$('#design_form').on( 'submit' ,function() {
var _this = this;
//Validate First form data
$.post(
$( this ).prop( 'action' ),
{
"_token": $( this ).find( 'input[name=_token]' ).val(),
"category_id": $( '#form_category_id' ).val(),
"title": $( '#form_title' ).val(),
"user_id": $( '#form_user_id' ).val(),
},
function( data ) {
//if validate fail
if(data.status=='fail')
{
alert('data.status');
}
//if validate pass
else
{
//Sent second data
$.post("designs/saveimage",
{
"_token": $( _this ).find( 'input[name=_token]' ).val(),
'base64_image': yourDesigner.getProductDataURL()
}, function(data) {
if(data) {
alert(JSON.stringify(data));
}
else {
alert('fail!');
}
});
}
},
'json'
);
return false;
});
添加新行:
var _this = this;
在第二次发送中:
"_token": $( _this ).find( 'input[name=_token]' ).val()
答案 1 :(得分:0)
在你的第二个ajax帖子上你必须指明主持人
如果它在js文件中,则必须指定主机
$.post("http://www.host.com/public/designs/saveimage")
如果在视图中
$.post("{{URL::to('designs/saveimage')}}");
你应该检查帖子去哪里以及路线是否正确 在Firefox中使用firebug或在谷歌浏览器中使用控制台。