更改选择框后,我不得不在文本框上显示数据,但是它无法正常工作,并且也无法控制ajax网址。
HTMl代码:
<select class="form-control" name="product_title" id="product_title">
@foreach($product_title as $id => $p_title )
<option value="{{ $id }}">{{ $p_title }}</option>
@endforeach
</select>
<input type="text" class="form-control" name="product_price" id="product_price">
<input type="text" class="form-control" name="product_quantity" id="product_quantity">
Js:
<script>
$(document).ready(function(){
$("#product_title").change(function(){
e.preventDefault();
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')
}
});
jQuery.ajax({
url: "{{ url('/productdetails') }}",
method: 'get',
data: {
id: jQuery('#product_title').val()
},
success: function(result){
jQuery('#product_price').html(result.product_price);
jQuery('#product_quantity').html(result.product_quantity);
}});
});
});
</script>
路线: 路线:: get('/ productdetails','ProductController @ getProduct');
public function getProduct(Request $req)
{
$product = product::find($req->id)->first(); // Product is the model
//dd($product);
if ($product)
{
return response()->json(['product_price' => $product->product_price,'product_quantity' => $product->product_quantity]);
}
}
数据库表名称是具有属性id,product_title,product_price,quantity的产品。当我从选择框相关值product_price中选择标题值时,来自数据库的数量将显示在文本框中。
答案 0 :(得分:0)
看起来像问题在成功函数行上。 html
对于为文本赋值没有用。它用于回显html。相反,您可以像下面这样使用val()
。
jQuery('#product_price').val(result.product_price);
jQuery('#product_quantity').val(result.product_quantity);
希望有帮助。编码愉快。
答案 1 :(得分:0)
您可以使用简单的无jquery,如下所示
<select>
foreach($result as $key => $value)
{
echo "<option value=".$your_id_variable.">".$your_display_variable."</option>";
}