2016-11-14 5 views
1

私はajaxを初めて使用しています。私はajaxプログラムを持っています。ユーザーが検索バーにユーザーを見つけるために書き込むときに、それは何かキーの上にあるので、データをデータベースから取り出してユーザーに選択させるのに役立ちます。 しかし、問題は、特定のデータを編集して表示するページを除き、ほとんどのページでうまくいくことです。ここ URLにidを持つページでは、ajaxは機能しませんか?

が、これは、すべてのページにAJAX

public function livesearch($str) 
{ 

    $users=User::where('name', 'LIKE', $str.'%')->orWhere('userid', 'LIKE', $str.'%')->get(); 
    $searchs = explode(" ", $str); 

    if (count($searchs) == 1) 
    { 
    $users=User::where('name', 'LIKE', $str.'%')->orWhere('userid', 'LIKE', $str.'%')->get(); 
      return $users; 
     } 
     elseif (count($searchs) == 2) 
    { 
    $users=User::where('name', 'LIKE', $searchs[0].'%')->where('fname', 'LIKE', $searchs[1].'%')->get(); 
      return $users; 
     } 
     elseif (count($searchs) == 3) 
    { 
    $users=User::where('name', 'LIKE', $searchs[0].'%')->where('fname', 'LIKE', $searchs[1].'%')->where('gname', 'LIKE', $searchs[2].'%')->get(); 
     return $users; 
     } 
     else 
    { 
     $users="[]"; 
    return $users; 
     } 

} 

のユーザーを返す私のコントローラ似ている検索入力がされている

function suser(str){ 

     var xhttp; 
     if(str.length==0) 
     { document.getElementById("srtd").innerHTML = "" 
      document.getElementById("srtd").style.border="0px"; 
      return;} 
     else{ 
     if (window.XMLHttpRequest) { 
     xhttp = new XMLHttpRequest(); 
     } else { 
     // code for IE6, IE5 
     xhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
      } 
      xhttp.onreadystatechange = function() { 
     if (xhttp.readyState == 4 && xhttp.status == 200) { 
      var res=xhttp.responseText; 
      var i=JSON.parse(res); 
      var j=i.length; 
      document.getElementById("srtd").innerHTML = ""; 
      var d=document.getElementById("srtd"); 
     var u=document.createElement("ul"); 
     u.style="list-style-type:none"; 

      d.appendChild(u); 
      for(var k=0; k<j ; k++){ 
     var li=document.createElement("li"); 

     u.appendChild(li); 
      li.innerHTML="<a href='livsearres/"+ i[k].id +"' class='btn' >"+ i[k].name +" "+i[k].fname+" "+i[k].gname+"</a>"; 

      } 
      //document.getElementById("srtd").innerHTML="<a href='showuser/"+ i[0].id +"' class='btn mybtn-n' >"+ i[0].name +" "+i[0].fname+"</a>"; 


     } 
     } 
     xhttp.open("GET", "lusrser/"+str, true); 
     xhttp.send();} 
    } 

アヤックスである

<input onkeyup="suser(this.value)" type="search" name="search" class="form-control" placeholder="Search" > 

URLは

です
route::get('/indexuser','[email protected]'); 
route::get('/createuser','[email protected]'); 
route::post('/createuser','[email protected]'); 
route::get('/edituser/{id}','[email protected]'); 
route::post('/edituser','[email protected]'); 
route::get('/showuser/{id}','[email protected]'); 

showuserとedituserのみが動作していないので、私はそれが編集中または表示中のIDの追加データと関係があると思います。あなたはこのトリックを使用することができ、ブレードのファイルを使用している場合は

エラーメッセージが

Sorry, the page you are looking for could not be found. 

1/1 
NotFoundHttpException in RouteCollection.php line 161: 
in RouteCollection.php line 161 
at RouteCollection->match(object(Request)) in Router.php line 821 
at Router->findRoute(object(Request)) in Router.php line 691 
at Router->dispatchToRoute(object(Request)) in Router.php line 675 
at Router->dispatch(object(Request)) in Kernel.php line 246 
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request)) 
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in CheckForMaintenanceMode.php line 44 
at CheckForMaintenanceMode->handle(object(Request), object(Closure)) 
at call_user_func_array(array(object(CheckForMaintenanceMode), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) 
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) 
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103 
at Pipeline->then(object(Closure)) in Kernel.php line 132 
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 99 
at Kernel->handle(object(Request)) in index.php line 54 
+0

xhr(コンソール)にはどのようなエラーが発生していますか?私は問題がここに 'xhttp.open(" GET "、" lusrser/"+ str、true);だと思います。あなたがあなたのURLにパラメータを取得しているので、あなたが望むURLを打つことはありません。 –

+0

URLが正しくないことを意味するルートが見つからないため、あなたは正しいと思います。どのように私はこれを解決することができます。 – user3266023

+0

マイ・バディをチェックしてください。私はそれが問題を理解するのに役立つと思います。 –

答えて

1

です。

このようなjavascript変数を定義します。

var SiteUrl = '{{ url::to("") }}'; 

これをあなたのajax URLと連結することができます。あなたは、あなたがxhttp.open("GET", SiteUrl+"/lusrser/"+str, true);

・ホープ、このヘルプを使用することができ、他の

上で使用し、あなたのbaseURLであなたの末尾に'/'を追加した場合

xhttp.open("GET", SiteUrl+"lusrser/"+str, true); 

...他に私が再び知らせてください。

+0

ご協力ありがとうございました – user3266023

+0

ようこそ........... :-) –

関連する問題