Php 如何在Ajax代码中添加带有已传递参数数据的查询?

Php 如何在Ajax代码中添加带有已传递参数数据的查询?,php,jquery,ajax,laravel,Php,Jquery,Ajax,Laravel,我正在用ajax中的create表单在laravel中做一个项目。我需要在表单完成后连接两个表,所以在ajax代码中,因为我需要进行一些选择。下面是ajax代码: $.ajax({ data: $('#hourForm').serialize(), url: "{{ route('others.store') }}", type: "POST", dataType: 'json', success: function (data) {

我正在用ajax中的create表单在laravel中做一个项目。我需要在表单完成后连接两个表,所以在ajax代码中,因为我需要进行一些选择。下面是ajax代码:

 $.ajax({
      data: $('#hourForm').serialize(),
      url: "{{ route('others.store') }}",
      type: "POST",
      dataType: 'json',
      success: function (data) {
          var name = <?php DB::select('SELECT projects.nameP from projects, data where projects.id = data.project_id?>
          var hour = '<tr id="hour_id_' + data.id + '"><td>' + data.day + '</td><td>'+ data.project_id+'</td><td>' + name + '</td><td>' + data.nHours + '</td><td>' + data.notesH + '</td>';
以下是表格:

<form id="hourForm" name="hourForm" class="form-horizontal">
       <input type="hidden" name="hour_id" id="hour_id">
        <div class="form-group">
            <label for="day" class="col-sm-2 control-label">DATA</label>
            <div class="col-sm-12">
                <input type="date" class="form-control" id="day" name="day" value="" required="">
            </div>
        </div>

        <div class="form-group">
            <label class="col-sm-2 control-label">Progetto</label>
            <div class="col-sm-12">
                <select name="project_id" id="project_id">
                    <option value="" selected disabled hidden><b>Scegli un'opzione</b></option>
                        @foreach($projects as $project)
                            <option value="{{$project->id}}">{{$project->nameP}}</option>   
                        @endforeach
                </select>
            </div>
        </div>
        <div class="form-group">
            <label for="nHours" class="col-sm-2 control-label">Ore</label>
            <div class="col-sm-12">
                <input type="text" class="form-control" id="nHours" name="nHours" value="" required="">
            </div>
        </div>
        <div class="form-group">
            <label for="notesH" class="col-sm-2 control-label">Note</label>
            <div class="col-sm-12">
                <input type="text" class="form-control" id="notesH" name="notesH" value="">
            </div>
        </div>
        <div class="col-sm-offset-2 col-sm-10">
         <button type="submit" class="btn btn-primary" id="btn-save" value="create">Aggiungi
         </button>
        </div>
    </form>

我不知道如何替换只是ajax函数中变量的数据。有人能帮我吗?

您将无法在javascript中执行这样的查询


为什么不在路由“others.store”中执行查询?我相信这是在调用一个控制器的函数,所以:只需运行该连接,并将名称与其余数据一起携带。

您将无法在javascript中执行这样的查询


为什么不在路由“others.store”中执行查询?我相信这是在调用一个控制器的函数,所以:只需运行该连接,并将名称与其余数据一起携带。

您不能在javascript中运行PHP代码。PHP只在服务器上运行,javascript在浏览器中运行。你必须把在AJAX中调用的PHP代码想象成一个删除函数库。该查询应该位于页面路径“others.store”中,PHP应该执行该查询并将结果打包为JSON并返回。然后,Success函数将在其param data中接收该数据。您不能在javascript中运行PHP代码。PHP只在服务器上运行,javascript在浏览器中运行。你必须把在AJAX中调用的PHP代码想象成一个删除函数库。该查询应该位于页面路径“others.store”中,PHP应该执行该查询并将结果打包为JSON并返回。Success函数将在其param dataI中接收该数据。我试图这样做,但遇到了一个内部服务器错误,即公共函数storeRequest$request{$hourID=$request->hour\u id;$name=DB::select'select projects.nameP from projects,hours WHERE projects.id=hours.project\u id AND projects.id=?',$request->project\u id;$hour=hour::updateOrCreate['id'=>$hourID',nameP'=>$name[0]>nameP],['project\u id'=>$request->project\u id,'day'=>$request->day,'nHours'=>$request->nHours,'notesH'=>$request->notesH];返回响应::json$hour;}另外,这个连接是在项目的数据库上执行的吗?您可以使用Eloquent来代替,这样说会更简单。消息:传递给Illumb\\database\\Connection::prepareBindings的参数1必须是数组类型,字符串给定,在l上的/var/www/PROGETTO2/vendor/laravel/framework/src/illumb/database/Connection.php中调用我不知道如何修改,我没有任何想法。我认为select中的某个值是一个数组,它试图将其作为字符串读取,这是行不通的。我尝试过这样做,但我面临一个内部服务器错误,公共函数storeRequest$request{$hourID=$request->hour\u id;$name=DB::select'select projects.nameP from projects,hours WHERE projects.id=hours.project\u id AND projects.id=?',$request->project\u id;$hour=hour::updateOrCreate['id'=>$hourID',nameP'=>$name[0]>nameP],['project\u id'=>$request->project\u id,'day'=>$request->day,'nHours'=>$request->nHours,'notesH'=>$request->notesH];返回响应::json$hour;}另外,这个连接是在项目的数据库上执行的吗?您可以使用Eloquent来代替,这样说会更简单。消息:传递给Illumb\\database\\Connection::prepareBindings的参数1必须是数组类型,字符串给定,在l上的/var/www/PROGETTO2/vendor/laravel/framework/src/illumb/database/Connection.php中调用我不知道如何修改,我没有任何想法,我认为select中的某个值是一个数组,它试图将其作为字符串读取,这是行不通的。