2017-03-16 69 views
0

裏面一個toolbar.blade我有這樣的:如何分配jquery的變量PHP變量在Laravel

<script> 
$('.form-control').on('change',function(){ 
var TourDate = document.getElementById('TourDate').value; 
if($('#TourDate_hidden').val()=="" || $('#TourID').val()==""){ 
    return; 
    } 
keyword= '_kfdTourDate:equal:'+$('#TourDate_hidden').val()+'|'; 
keyword+= '_kfnTourID:equal:'+$('#TourID').val(); 

reloadData('#{{ $pageModule }}',"{{ $pageUrl }}/data?search="+keyword);  
console.log(TourDate); 
}); 
</script> 

另外我有一個文本輸入和一個toolbar.blade選擇框。 輸入和選擇框看起來就像這樣:

<input type="text" class="form-control" name="TourDate" 
id="TourDate" data-value="{{$testdate}}"> 

@if(count($tourTypes)) 
    <select name="_kfdTourID" id="TourID" onkeyup='saveValue(this);'> 
    @foreach($tourTypes as $tourType) 
     <optgroup label="{{ $tourType->_kftDescription }}"> 
      @if(count($tourType->tours)) 
      @foreach($tourType->tours as $tour) 
      <option value="{{ $tour->_kpnID }}">{{ $tour->tDescription }}</option> 
      @endforeach 
      @endif 
     </optgroup> 
    @endforeach 
    </select> 
@endif 

當我點擊文本輸入,一個自舉日曆坡平了,選擇一個日期後它顯示裏面輸入選定的日期和頁面與新重裝過濾的數據槽ajax

eg XHR finished loading: GET "http://www.website.com/bookings/data?search=_kfdTourDate:equal:2017-03-11|_kfnTourID:equal:4

通過ajax重新加載頁面後,輸入內的值將變爲空,並且選擇框中的第一個選項將自動選中。

當我寫

@php 
     $testdate = "16/03/2017"; 
@endphp 

輸入上述我可以看到裏面輸入的日期16/03/2017。此外,我還可以使用console.log(TourDate)打印選定的遊覽日期。即使在刷新頁面後,日期16/03/2017仍保留在輸入內。但不知何故,我不能指定jQuery變量TourDate到PHP變量測試日期。如何保存輸入的數據值,並在頁面刷新後將所選選項標記爲選中狀態?

我試過這個:keep input value after refresh page,但無法使它工作。我整天都嘗試了幾乎所有東西。我非常需要幫助來完成這項工作。預先感謝您的幫助。

+0

客戶端信息可被髮送到與一個http呼叫服務器:例如'GET'或'POST'。你可以使用'xhr'('ajax')來完成這個操作,以免重新加載頁面。 https://developer.mozilla.org/en-US/docs/Learn/HTML/Forms/Sending_and_retrieving_form_data –

+0

'$ testdate = $ _GET('TourDate')'沒有工作也沒有'$ testdate =「「;' – hijacker83

+0

你可能不得不使用laravel方式:'$ request-> input('TourDate');' –

回答

0

使用document.write()您可以分配PHP變量內的JavaScript變量值作爲

$phpVariable = "<script>document.write(javascriptVariable);</script>";