2014-03-12 31 views
-1

我在視圖中有一個Ajax代碼。它將選定的索引(從選擇框)發送到控制器。控制器將其轉發給模型並獲得正確的結果。我可以在Firebug中看到,當我執行print_r時,控制器的數組中有正確的值,因此只需將它發送回視圖進行打印。但它在那裏通過「變量未定義」失敗。我可以繞過這個問題做一些像PHP Ajax Laravel問題的原因很明顯,但解決方案?

如果(空($變量)){

那麼不打印否則打印出來, 如果我這樣做,它得到的Ajax代碼的成功一部分,但我希望它在View html頁面上。我如何以成功的方式完成最後一部分?下面是完整的代碼清楚:

VIEW:

<script> 
    $(document).ready(function() { 
       $("#target").change(function() { 
        // alert($('#target option:selected').val()); 
        $.ajax({ 
         type: 'POST', 
         url: '<?php echo route("showhospitals");?>', 
         data: {'dataString': $('#target option:selected').val()}, 
         cache: false, 
         success: function(data) 
         { 
          // alert(data);// CAN I USE THIS SUCCESS STUFF TO WRITE 
          // TO THE HTML BLADE VIE PAGE INSTEAD OF ON AN ALERT? 
         } 
        }); 

       }); 


      }); 
</script> 

控制器

public function postespecialidades(){ 
     if (Request::ajax()) 
{ 
    /*WE GET THE DATA FROM THE SELECT LIST VIA AJAX*/ 
    $data['input'] = Input::get('dataString'); 
    $dato = $data['input']; 
    echo "the index number I got is: . $dato"; 
    /*WE SEND THAT DATA TO THE MODEL*/ 
    $hospital['input'] = with(new treatment)->sendData($dato); 
    print_r($hospital['input']); //I CAN SEE THE CORRECT RESULT IN FIREBUG RESPONSE BUT CANT PASS IT TO THE VIEW 
    return View::make('especialidades.especialidades')->with('hospital', $hospital); 
    return $hospital['input']; 
} 

     else{ 
      echo "THE JQUERY IS NOT GETTING TO TALK TO ME"; 
     } 
    } 
    } 

所以,我想打印在View頁面上,而不是在警告窗口中的結果。

個人信息將在此處列出。

原因這個問題:

頁面加載時,在選擇任何東西之前,在網頁崩潰,因爲它試圖打印一直沒有得到來自控制器的價值的機會的變量。這是問題所在。

回答

0

使用其中之一。

溶液1

雙引號你的PHP路線

<script> $(document).ready(function() { 
    $("#target").change(function() { 
     // alert($('#target option:selected').val()); 
     formData = { 
      dataString: $('#target option:selected').val(); 
     } 
     $.ajax({ 
      type: 'POST', 
      url: "<?php echo route("showhospitals");?>", 
      data: formData, 
      cache: false, 
      success: function(data) { 
       // alert(data);// CAN I USE THIS SUCCESS STUFF TO WRITE 
       // TO THE HTML BLADE VIE PAGE INSTEAD OF ON AN ALERT? 
      } 
     }); 
    }); 
}); < /script> 

解決方案2

使用URL,而不是PHP航線

<script> $(document).ready(function() { 
    $("#target").change(function() { 
     // alert($('#target option:selected').val()); 
     formData = { 
      dataString: $('#target option:selected').val(); 
     } 
     $.ajax({ 
      type: 'POST', 
      url: 'http://localhost/showhospitals', 
      data: formData, 
      cache: false, 
      success: function(data) { 
       // alert(data);// CAN I USE THIS SUCCESS STUFF TO WRITE 
       // TO THE HTML BLADE VIE PAGE INSTEAD OF ON AN ALERT? 
      } 
     }); 
    }); 
}); < /script> 
+0

謝謝穆罕默德,sukra。當我回家時,我會嘗試解決方案,因爲現在我不在我的計算機上,我明天會告訴你,但我認爲問題在於,當頁面加載時,我希望在視圖中打印的$變量會被讀取,因爲控制器還沒有傳遞值(因爲我沒有機會選擇任何東西),那麼它是未定義的,頁面在加載時崩潰。注意到這一點很重要。 – iaintunderstand

+0

讓我知道如果你已經測試我的解決方案我的朋友 –

+0

你好穆罕默德。我試圖沒有改變。我有網絡在線,所以你可以自己嘗試。我可以給你一個私人聊天的網址 – iaintunderstand