在PHP中使用JS变量


Use JS variable in PHP?

我正试图从web应用程序中获取地理位置,我需要验证这个值,并将selected="selected"放在下拉菜单中,但我不知道如何获取JS变量并将其用于PHP。请帮帮我!

获取位置:

<script type="text/javascript">
 navigator.geolocation.getCurrentPosition(foundLocation, noLocation);
 function foundLocation(position)
 {
   var lat = position.coords.latitude;
   var long = position.coords.longitude;
   alert('Found location: ' + lat + ', ' + long);
 }
 function noLocation()
 {
   alert('Could not find location');
 }
</script>

我会有一个这样的选择:

<select name="destination" id="start">
                                    <option value="Domiciliu">Domiciliu</option>
                                    <option value="Sediul 1" <?php if(lat >= 45.795517 && long <= 24.137433){ echo"selected='"selected'"";}else{} ?>>Sediul 1</option>
                                    <option value="Sediul 2" <?php if(lat && long){ echo"selected='"selected'"";}else{} ?>>Sediul 2</option>
                                    <option value="Vama" <?php if(lat && long){ echo"selected='"selected'"";}else{} ?>>Vama</option>
                                    <option value="Hotel Hilton" <?php if(lat && long){ echo"selected='"selected'"";}else{} ?>>Hotel Hilton</option>
                                    <option value="Hotel Golden Tulip" <?php if(lat && long){ echo"selected='"selected'"";}else{} ?>>Hotel Golden Tulip</option>
                                    <option value="TESS" <?php if(lat && long){ echo"selected='"selected'"";}else{} ?>>TESS</option>
                                    <option value="Alta locatie">Alta locatie</option>
                                </select>

您需要使用额外的javascript来设置selectbox的值,如下所示:

var element = document.getElementById('start');
element.value = 'location_code_in_selectbox';

您可以使用Javascript将数据存储在$_POST$_GET变量中,然后将这些数据提交到另一个页面上的php,在那里您可以将变量拉入脚本。

为了将值发送到服务器端php脚本,您可以使用ajax请求或在表单提交时发送数据的(不可见)表单字段。

您应该了解请求/响应HTTP的内容以及客户端和服务器端执行之间的区别。

无论如何,如果您不严格需要在服务器端(php)处理信息,那么直接用javascript/jquery:标记所选选项就足够了

if (/* long lat conditions*/) {
  $('#start').val('Sediul 1'); // mark Sediul 1 as selected
}