我在控制器类中为(price)创建了这样的字段。
protected $fields = [
'tag' => '',
'title' => '',
'location' => '',
'property_type' => '',
'residence_name' => '',
'bedroom_no' => '',
'price' => '',
'lease' => 0,
];
我还在我的表中创建了一个列(价格),用于迁移
Schema::table('tags', function (Blueprint $table) {
$table->string('location');
$table->string('property_type');
$table->string('residence_name');
$table->string('bedroom_no');
$table->string('price');
$table->boolean('lease');
});
其他字段保存在数据库中,因为它们是文本输入字段。以下是保存在数据库中的位置输入字段的工作示例代码:
<div class="form-group">
<label for="location" class="col-md-3 control-label">
Location / City
</label>
<div class="col-md-8">
<input type="text" class="form-control" name="location" placeholder=""
id="location" value="{{ $location }}">
</div>
</div>
这是价格下拉的代码,我想从jQuery中获得var价格的值,然后将其传递给Laravel:中的$price
var
<div class="form-group">
<label for="price" class="col-md-3 control-label">
Price
</label>
<div class="col-md-4">
<select class="form-control" id="price" value="{{ $price }}">
<option>10,000 - 15,000</option>
<option>15,000 - 20,000</option>
<option>20,000 - 25,000</option>
<option>30,000 - 50,000</option>
<option>50,000 and Above</option>
</select>
</div>
</div>
使用jQuery脚本代码接受来自用户的输入
<script>
$("#price").change(function () {
var price = $(this).val();
alert(price);
});
</script>
向您的<select>
标记添加一个name
属性price
,并向每个<option>
标记添加具有所需值的属性value
。
<select class="form-control" id="price" name="price">
<option value="10,000 - 15,000">10,000 - 15,000</option>
<option value="15,000 - 20,000">15,000 - 20,000</option>
<option value="20,000 - 25,000">20,000 - 25,000</option>
<option value="30,000 - 50,000">30,000 - 50,000</option>
<option value="50,000 and Above">50,000 and Above</option>
</select>
你不需要其他任何东西。这就是HTML表单的工作方式。
该值附加在名称上,您稍后可以使用获得它
$request->input('price');
传递给$request->input
的参数是表单中输入/选择/复选框/单选元素的名称参数,它将等于选择的value
。
删除javascript,因为在您的情况下不需要它。
您提到可以将文本输入字段保存在数据库中,所以我想您知道如何在HTML中进行表单提交,在Laravel中设置后路由,在控制器中捕获输入,然后保存到模型中。
如果是这种情况,而唯一的问题是select下拉列表,那么您似乎忘记了select标记上的name属性和option标记上的value属性。
如果你想在下拉列表中设置一个默认值,就像我猜你试图使用value={{ $price }}
一样,那么你应该使用selected
属性。
<select class="form-control" id="price" name="price">
<option value='10,000 - 15,000'>10,000 - 15,000</option>
<option value='15,000 - 20,000'>15,000 - 20,000</option>
<option value='20,000 - 25,000' selected='selected'>20,000 - 25,000</option>
<option value='30,000 - 50,000'>30,000 - 50,000</option>
<option value='50,000+'>50,000 and Above</option>
</select>
尝试这个
<div class="form-group">
<label for="price" class="col-md-3 control-label">
Price
</label>
<div class="col-md-4">
<select class="form-control" id="price">
<option value="10,000 - 15,000">10,000 - 15,000</option>
<option value="15,000 - 20,000">15,000 - 20,000</option>
<option value="20,000 - 25,000">20,000 - 25,000</option>
<option value="30,000 - 50,000">30,000 - 50,000</option>
<option value="50,000 and Above">50,000 and Above</option>
</select>
</div>
</div>
在jquery 中
$("#price").on("change", function () {
var price = $(this).val();
alert(price);
//Here you can use ajax to call php function
$.ajax({
url : <your_function_path>,
type : 'POST',
data : {
price : price
},
success : function(ret_data) {
}
});
});
然后在php函数中,通过带有"input"或"get"函数的Request对象获取值
例如,假设你有一个叫做ABC的类和一个叫做PQR-的函数
class ABC extends Controller {
public function PQR(Request $request) {
$price = $request->get('price');
...
}
}