2015-10-06 28 views
3

一般問題是,我無法取回回聲或從另一個文件通過ajax返回。警報(msg)爲空。這是否prevent.default停止發送GET?我在編程方面不是很流利,你能幫我解決嗎?成功的ajax腳本不會給我回應

我有我的簡單形式:

<form class='findAndBlock1' method="GET" action=""> 
    <input type='text' name="nameToBlock1" placeholder=" who do you want to block?" class='nameInput'> 
    <input type='submit' value="Search" class='submitInput1'> 
</form> 

點擊它後,AJAX腳本啓動:

<script> 
$(".submitInput1").click(function(){ 

    event.preventDefault(); 

    $.ajax({ 
     type: "GET", 
     url: "/searchFriendsToBlock", 
     data: { 

     }, 
     success : function(msg) { 
      alert(msg); 
     }, 
     error : function(error) { 
      alert('error'); 
     } 
    }); 
}); 
</script> 

它是針對被路由這樣的腳本:

Route::any('/searchFriendsToBlock', '[email protected]'); 

以下是通過ajax運行的腳本:

public function searchFriendsToBlock() { 

     $q = Input::get('nameToBlock'); 
     if (strlen($q) < 3) 
      return null; 

     $users = DB::table('users')->where //here goes some long request 

     foreach ($users as $user) { 

      if (!$user->f_first_name_public) 
       $user->first_name = ""; 
      if (!$user->f_last_name_public) 
       $user->last_name = ""; 

      $user->avatar = User::getUserAvatar($user->id); 
      $user->id = ""; 
      $user->type = "user"; 
      $newArr[] = $user; 
     } 
     echo "hello"; 
     return Response::json($newArr); 
    } 
+1

您的preventDefault無論如何.add事件在像'功能(事件)'請做console.log(味精) – guradio

+1

@皮卡這是真的在FF哪個doe沒有使用全局事件模型,所以亞,OP應該通過'事件'作爲處理程序回調參數 –

+0

@Pekka這prevent.default使表單不刷新我的頁面。好的,我正在檢查console.log現在 – WantToBeProgrammer

回答

1

使用dataType在Ajax請求參數作爲您在json格式發送響應默認dataType設置爲htmljQuery.ajax()

<script> 
    $(".submitInput1").click(function(){ 

     event.preventDefault(); 

     $.ajax({ 
      type: "GET", 
      dataType: "json", 
      url: "/searchFriendsToBlock", 
      data: { 

      }, 
      success : function(msg) { 
       alert(msg.type); 
      }, 
      error : function(error) { 
       alert('error'); 
      } 
     }); 

    }); 
</script> 

您的腳本應該是這樣的

public function searchFriendsToBlock() 
{         
    $q = Input::get('nameToBlock'); 
    if (strlen($q) < 3) 
     return null; 

    $users = DB::table('users')->where //here goes some long request 
    $response = array(); 
    foreach ($users as $user) { 
     if (!$user->f_first_name_public) 
      $user->first_name = ""; 
     if (!$user->f_last_name_public) 
      $user->last_name = ""; 

     $user->avatar = User::getUserAvatar($user->id); 
     $user->id = ""; 
     $user->type = "user"; 
     $newArr[] = $user; 
    } 
    $response['type'] = 'sussess';  
    $response['data'] = $newArr;  
    return Response::json($response); 
} 
+0

謝謝你的回答。添加dataType後,我看到「空」警報。這個.keyInJson(我是否應該添加它?console說它的東西沒有定義)。該死的編程是困難的>> – WantToBeProgrammer

+0

@WantToBeProgrammer它應該是你的鑰匙作出迴應 –

+0

好的,謝謝。看起來像現在可行,但答案是空的嗎?這是否意味着什麼仍然是錯誤的? – WantToBeProgrammer