-1
2つの入力フィールドがあります。onChange Ajaxを選択するmysqlデータベースのデータリストを取得するLaravel 5.4
最初の選択入力フィールドには静的データが含まれています。
第2の選択入力フィールドは、第1の入力フィールド選択値に応じて入力する必要があります。
以下は、私が返さAjaxのデータを取得することができません私のコード
<select id="filter_type" name="filter_type" class="selectpicker form-control" style="width:30%;">
<option value>Select Filter Type..</option>
<option value="abc">Abc</option>
<option value="def">Def</option>
<option value="ghi">Ghi</option>
<option value="jkl">Jkl</option>
</select>
<select id="search" name="search" class="selectpicker form-control" style="width:70%;" disabled="disabled">
<option value>Select Filter type first..</option>
</select>
Javascriptを
<script type="text/javascript">
$(document).ready(function()
{
$("#filter_type").change(function()
{
var id=$(this).val();
console.log(id);
var dataString = 'id='+ id;
console.log(dataString);
$.ajax
({
type: "GET",
url: "{{url('/users/abc')}}",
data: dataString,
cache: false,
success: function(data)
{
console.log(data); // I get error and success function does not execute
}
});
});
});
</script>
コントローラ
public function get_onchange_data(Request $request)
{
if($id == 'abc')
{
$searches = Abc::select('field_name')->get();
return response(view('/users/Def', compact('searches'))->render());
}
}
です。
私はこのエラーを取得する:条件が間違っている場合
GET http://localhost:8000/users/abc?id=year&_=1496176229318 500 (Internal Server Error)
は、私は私のチェックを中だと思います。私は$ idをdataStringから渡された値として考えています。
私はこれを行う方法がわかりません。データを取得し、それを条件と比較し、最後にデータの配列結果を返します。
編集コードここ
$("#filter_type").change(function()
{
var id=$(this).val();
console.log("1:"+id);
var dataString = '{id:'+ id+'}';
console.log("2:"+dataString);
$.ajax
({
type: "GET",
url: "{{url('/users/abc')}}",
data: dataString,
cache: false,
success: function(data)
{
console.log("3:"+data);
}
});
});
public function get_search_data(Request $request)
{
return response($request->input('id'));
}
私は送信したものとして応答を返そうとしていますが、私は空の応答を得ます。これは私がコントローラーで何をしているかです。リターンレスポンス($ request-> input( 'id'));私はこれを変更しましたdataString = '{id:' + id + '}';あなたが言ったように。私はこれを成功させました:console.log( "3:" + data);だから戻ってくるものがわかっているのは私だけだ3: –
申し訳ありませんが、あなたが私に教えたいことを理解していません。 また、ペイロードを文字列にしないでください。それをjavascriptオブジェクトにします。 – Strernd
編集セクションで質問を更新しました。あなたが提案したコードを更新しました。私はjsオブジェクトを認識していません。あなたは意味しますか? data:{id:id} –