簡體   English   中英

如何從選定的下拉列表中將jquery值傳遞給Laravel 5.1中的變量?

[英]How can I pass a jquery value from a selected dropdown list to a variable in Laravel 5.1?

我已經在控制器類中為(價格)創建了字段。

   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 price的值,然后將其傳遞給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的參數是表單中input / select / checkbox / radio元素的名稱參數,它等於選擇的任何value

刪除JavaScript,因為您的情況不需要它。

嘗試這個

<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');
        ...
    }
}

您提到可以將文本輸入字段保存在數據庫中,所以我想您知道如何使用HTML進行表單提交,在Laravel中設置發布路線,在控制器中捕獲輸入,然后保存到模型中。

如果是這樣,唯一的問題就是選擇下拉列表,那么似乎您已經忘記了選擇標簽上的名稱屬性和選項標簽上的值屬性。

如果您想在下拉列表中設置默認值,例如我想您要使用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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM