2017-07-28 138 views
0

我之前读写这个问题,其他的问题,但没有工作,我检查JavaScript加载完成后,我尝试使用jQuery的是我过去$但没有..的Javascript遗漏的类型错误:showcreate1不是一个函数

我的问题是ajax不工作,错误是标题问题。

我有一些看法,menu.blade.php代码:

@extends('cms.public.layouts.default') 
@section('content') 

<div class="col-md-10"> 
    <h3 style="letter-spacing:40px;text-align:center;color:f15d5e;">PROYECTOS</h3> 
</div> 
<div class="col-md-2" style="padding:20px;"> 
    <button type="button" id="buttoncreate" class="btn btn-danger">Crear Proyecto</button> 

</div> 
<div class="col-md-12" id="ajaxwindow"> 

</div> 

<script> 

$(document).ready(function(){ 
     listProject(); 
     $("#buttoncreate").click(function(e){ 
     $("#buttoncreate").remove(); 
     e.preventDefault(); 
     listUploadProject(); 
     }); 
    }); 

     var listProject = function() 
     { 
     $.ajax({ 
      type:'get', 
      url:"{{ url('admin/project/listall') }}", 
      success: function(data){ 
      $('#ajaxwindow').empty().html(data); 
      } 
     }); 
     } 
     var listUploadProject = function() 
    { 
     $.ajax({ 
     type:'get', 
     url:"{{ url('admin/project/create') }}", 
     success: function(data){ 
      $('#ajaxwindow').empty().html(data); 
     } 
     }); 
    } 
</script> 
@stop 

在此视图中,我使用Ajax和正在工作时,它示出了该图(listall.blade.php):

<table class="table"> 
    <thead style="color:white"> 
     <tr> 
     <th>Id</th> 
     <th>Slug</th> 
     <th>Order</th> 
     <th>Public</th> 
     <th>Path header</th> 
     <th>Path home</th> 
     <th>Fecha creación</th> 
     <th>Fecha ultima actualización</th> 
     <th><span class="glyphicon glyphicon-cog"></span></th> 
     </tr> 
    </thead> 
    <tbody style="color:white"> 
    @foreach ($projects as $key => $project) 
     <tr> 
     <th>{{$project->id}}</th> 
     <td>{{$project->slug}}</td> 
     <td>{{$project->order}}</td> 
     <td>{{$project->public}}</td> 
     <td>{{$project->pathheader}}</td> 
     <td>{{$project->pathhome}}</td> 
     <td>{{ date('M j, Y', strtotime($project->created_at))}}</td> 
     <td>{{ date('M j, Y', strtotime($project->updated_at))}}</td> 
     <td><a href="{{ route('admin.projects.show', $project->id)}}" class="btn btn-info btn-sm">View</a> <a href="{{ route('admin.project.edit', $project->id)}}" class="btn btn-success btn-sm">Edit</a> 
    @endforeach 
     </tr> 
    </tbody> 
    </table> 
    <br><br> 

如果我按钮点击创建他去这个观点(createproject.blade.php):

<div class="col-md-8 col-md-offset-2" id="createproject"> 

</div> 
<br><br><br> 

<script> 
$(document).ready(function(){ 
     showcreate1(); 
    }); 

     var showcreate1 = function() 
     { 
     $.ajax({ 
      type:'get', 
      url:"{{ url('admin/project/createform1') }}", 
      success: function(data){ 
      $('#createproject').empty().html(data); 
      } 
     }); 
     } 
</script> 

网址“/管理/项目/ createform1”我s由控制器调用:

public function CreateProjectForm1() 
    { 
     return view('cms.public.views.projects.createprojectform1'); 
    } 




<div class="col-md-10"> 
     <h3>Crear nuevo proyecto</h3> 
     </div> 
     <div class="col-md-2"> 
     <h3>1/2</h3> 
     </div> 
     <hr> 


     <div class="col-md-12" id="formcreateproject"> 

      <form method="POST" action="{{ route('admin.projects.store') }}" enctype="multipart/form-data"> 
       <div class="form-group"> 
       <label name="title">Slug:</label> 
       <input type="text" id="slug" name="slug" placeholder="ejemplo-de-slug" class="form-control form-control-sm"> 
       <label name="order">Order:</label> 
       <input type="number" id="order" name="order" class="form-control form-control-sm"> 
       <label name="public">Public:</label> 
       <input type="number" id="public" name="public" class="form-control form-control-sm"> 
       <label name="body">Header</label> 
       <input type="file" name="pathheader" id="pathheader" class="form-control-file" aria-describedby="fileHelp"><br> 
       <label name="body">Home</label> 
       <input type="file" name="pathhome" id="pathhome" class="form-control-file" aria-describedby="fileHelp"><br> 

       <input type="submit" value="Crear Proyecto" id="createprojectsubmit" class="btn btn-danger btn-md"> 
       <input type="hidden" name="_token" value="{{ Session::token() }}"> 
       <br><br><br> 

       </div> 
      </form> 

      </div> 

为什么最后一个视图没有加载?

非常感谢,任何帮助将不胜感激。

回答

1

尝试使用此

showcreate1 = function() 
     { 
     $.ajax({ 
      type:'get', 
      url:"{{ url('admin/project/createform1') }}", 
      success: function(data){ 
      $('#createproject').empty().html(data); 
      } 
     }); 
     } 

没有变种。用var声明它会限制它的范围。除去VAR将使其可在页面访问的任何地方全局函数,或做到这一点,而不是

$(document).ready(function(){ 

     var showcreate1 = function() 
     { 
     $.ajax({ 
      type:'get', 
      url:"{{ url('admin/project/createform1') }}", 
      success: function(data){ 
      $('#createproject').empty().html(data); 
      } 
     }); 
     } 
     showcreate1(); 
    }); 
+0

没有栏错误更改,现在retorn是showcreate1没有被声明 –

+0

第二个选项是成功的,也许渲染视图和函数没有加载?或者,为什么,如果你首先声明了这个函数,它的工作原理? –

+0

你的声明中的'var'实际上使它成为一个局部变量,这个变量对于你的用法是不可访问的,这个变量是在页面准备就绪时执行的函数中。 请标记答案,如果正确:D – perseusl

0

showcreate1不是一个函数,因为您在定义它之前调用它。 将var showcreate1 = function() {}更改为function showcreate1() {}或者只是将文档就绪代码移到函数定义的下面。

+0

在JavaScript您在代码中声明它 – taha

+0

是,使用函数声明之前,你可以使用一个函数,而不是函数表达式。 – user1121487

+0

为真。函数表达式不会被悬挂,所以它们不能被使用,直到它们出现在代码中 – taha

相关问题