php - 将下拉选择的值拆分为两个变量? (PHP/HTML)

标签 php html coordinates

所以我有一个带有两个 HTML 下拉列表的网站 - 一个是美国各州的列表,另一个是所选州的城市/城镇列表。截至目前,我为每个州都有一个 HTML 文件,它们都有如下列出的选项:

<option value="44.729932, -72.381758">Albany</option>
<option value="44.976728, -73.30257">Alburg</option>

这些值是每个城镇的坐标(纬度、经度)。当我点击“搜索”时,表单数据被发送到 SimpleGeo(一家位置数据库公司 - 令人惊叹,顺便说一句)的 PHP 脚本 - 选择城镇的目的是为这部分的 $lat 和 $lon 提供值PHP 脚本,为每个查询发送到 SimpleGeo:

$q = $_GET['q'];
$lat = 44.729932;
$lon = -72.381758;

$args = array('q' => $q, 'num' => 25, 'category' => Restaurant, 'radius' => 25);
$results = $client->getPlaces($lat, $lon, $args);

不能改变的部分是“getPlaces($lat, $lon, $args);”部分是因为出于某种原因,当我将 $lat 和 $lon 替换为 $coordinates,然后将它们的值替换为:

$coordinates = $_GET['city']; ('city' 是我的城市/城镇列表的名称和 ID)

它不认为它是一个有效的查询。同时,如果将“$lat, $lon”替换为数字作为坐标,它完全可以理解。

...我只需要拆分我的值,无论是在 HTML 文件本身,还是在 PHP 脚本中,通过识别“,”意味着纬度值已经结束,经度值已经开始。我不知道应该怎么做,我只知道 $lat 和 $lon 必须等于我的 HTML 文件设置的值 - 每个州一个文件,每个文件平均大约 500 个选项......我怎么办让它将“44.729932,-72.381758”之类的东西识别为 $lat 和 $lon?!或者,如果我让选项看起来像这样,我如何让我的下拉列表传递纬度和经度的值:

<option lat="44.976728" lon="-73.30257">Alburg</option>

感谢阅读,抱歉这么长!现在是凌晨 2:50,我的眼睛在流血! :P 非常感谢您的帮助...

最佳答案

您可以拆分选项的值以获得纬度和经度。

使用正则表达式验证您的字段,例如 -?[0-9]+\.[0-9]+, -?[0-9]+\.[0-9]+ ,然后分解它并得到两个值:

list($lat, $lon) = explode(", ", $_GET['city']);

这里的分隔符是 包括空格,顺便说一句,将其删除。

关于php - 将下拉选择的值拆分为两个变量? (PHP/HTML),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5846969/

相关文章:

javascript - 当正则表达式有转义时,在 php 中重写 javascript 正则表达式

javascript - 如何使用 JQuery 和 PHP 更新 PHP 查询以实时反射(reflect)表单选择

php - 阻止不需要的访客 : htaccess, iptables,或者只是数据库

php - PDO 返回空结果

html - 图像不在中间

html - Firefox 对 "display:table-cell; vertical-align:bottom;"的理解不同

javascript - 谷歌地图无限线/增加长度或纬度lng计算

android - 在android中点击 map 获取坐标

JQuery:获取属于输入标签的标签的值

python - 如何将地理空间坐标 dataFrame 转换为原生 x,y 投影?