在我的laravel项目中,我通过资源控制器插入数据。但是现在我想使用ajax请求,使用相同的路由和相同的资源控制器方法来插入我如何发送url以及如何向它发送表单数据。
路线
Route::resource('/makes', 'MakeController');
控制器
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Redirect;
use Illuminate\Http\Request;
//----models--------
use App\Make;
class Makecontroller extends Controller
{
public function index()
{
return View("pagination_common.index");
}
public function create()
{
}
public function store(Request $request)
{
$input['name'] = Input::get('name');
$rules = array('name' => "unique:makes,name");
$validator = Validator::make($input, $rules);
if ($validator->fails()) {
return Redirect::back()->with('alert-danger',"Make Name already exist.")->withInput();
}
else{
$make = new Make();
$make_detail = $make->add_make($request);
$data['name'] = $request->name;
$make = make::find($make_detail['id']);
activity('create')->performedOn($make)->log('');
return redirect('/makes')->with('alert-success', 'Make Created successfully.');
}
}
public function show($id)
{
}
public function edit($id)
{
}
public function update(Request $req, $id)
{
}
public function destroy($id)
{
}
}
模型
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\softDeletes;
use DB;
class Make extends Model
{
use SoftDeletes;
public function add_make($req)
{
$this->name = $req['name'];
$this->save();
return ['id' => $this->id];
}
public function edit_make($req,$id)
{
$make = $this->find($id);
$make->name = $req->name;
$make->save();
}
public function make_detail($id)
{
$client = DB::select('select * from makes WHERE id=:id',['id'=>$id]);
return $client;
}
}
添加表单div
<div class="modal" id="add_item">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title">Add Make</h4>
</div>
{{ Form::open(array('class' => 'form-horizontal form-validate-jquery','id' => 'add_item_form')) }}
{{ Form:: hidden('model', "make","" ) }}
<div class="modal-body">
<fieldset class="content-group">
<legend class="text-bold"></legend>
<div class="form-group">
<label class="control-label col-lg-3">Name: <span class="text-danger">*</span></label>
<div class="col-lg-9">{{ Form:: text('name', null, array('class' => 'form-control', 'required' => '','placeholder' => 'name', 'maxlength' => '50')) }}</div>
</div>
</fieldset>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-sm btn-primary" id="item-add-btn" data-resource="faq" onclick="add_item_common('make','Make')" >Submit</button>
<button type="button" class="btn btn-sm btn-default" data-dismiss="modal">Cancel</button>
</div>
{{ Form::close() }}
</div>
</div>
</div>
ajax函数的js代码
function add_item_common(model,item)
{
var CSRF_TOKEN = $('meta[name="csrf-token"]').attr('content');
var objectResult = $('#add_item_form').serializeArray();
$.ajax({
type: "POST",
url: "makes",
dataType: 'json',
data: {
_token: CSRF_TOKEN,
fields: objectResult
},
success: function (data) {
console.log(data);
if(data=='success')
{
var page = $(".pagination .active span").html();
ajaxLoad('{{Request::segment(1)}}?page='+page);
$('#delete_confirm').modal('hide');
var add_success = '<div class="alert alert-success"><button type="button" class="close" data-dismiss="alert"><span>×</span><span class="sr-only">Close</span></button>'+model+' '+item+' added successfully.</div>';
$(".content").prepend(add_success);
setTimeout(function(){ $(".alert-success").remove(); }, 5000);
}
}
});
}
用以下代码替换ajax代码。
$.ajax({
type: "POST",
url: "makes",
data:$("#add_item_form").serialize(),
success: function (data) {
console.log(data);
}
});
如果我打电话: 它给出了方法的结果 但是现在我需要从调用这个方法(JPararePository扩展了这个接口) 为了调用EmployeeRepository作为restendpoint,我给EmployeeRepository编写了一些函数。 但我得到了一个错误:
问题内容: 我使用Google Maps API制作了一个非常简单的页面,其中有几个字段,用户将在其中放置一些数据。看起来像- http://aiworker2.usask.ca/marker_field_db.html 我要做的是使用javascript / Ajax将数据存储到MySQL数据库中。我发现了几个使用Jquery的示例。我是这个javascript / Ajax / Jquery平
下面是我的代码和我到目前为止所做的事情。 如何在单击#OrderSave按钮后使用ajax将表中的所有数据插入数据库? $(“#code”).bind(“blur keypress”,function(event){event.preventdefault();if(event.keycode===13 event.type=='blur'){var vals=$('#code').val();$
我是laravel的新手,当我使用单击函数提交表单时出现了一些问题。ajax jquery controller不会将数据保存到数据库,每次响应时都会使用整个html文件。请帮帮我。 关于标题的一些信息 请求URL:http://akshay.laravel/patient1?fname=asdknkl 状态代码:200 OK 远程地址:[::1]:80 推荐人策略:降级时无推荐人 缓存控制:无缓
问题内容: 如何将ID从此Ajax调用传递给TestController getAjax()函数?当我打电话时,网址是testUrl?id = 1 TestController.php 问题答案: 最后,我只是将参数添加到Route :: get()以及ajax url调用中。我在getAjax()函数中将$ _POST [‘id’]更改为$ _GET [‘id’],这使我的回复 TestCont
我有一个Vuex存储,它包含大约30个字段,在过去的两天里,我一直在试图找出如何在将其传递到AJAX post方法之前正确地收集它。我知道Vuex属性是反应性的,这可能会导致问题。我一直在运行测试以使这个该死的东西正确地填充我的Asp.Net控制器,下面是我的发现。 下面的日志显示了AJAX调用前后的情况。 我的硬编码对象工作正常,但这只是出于测试目的: 我的下一个尝试是直接将store.stat