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>";