Jquery 使用explode数组发布到数据库
我拥有的是JQuery和自动完成。一切都很好,直到我尝试发布到SQL 我让它将城市名称、州缩写和Zipcode拉入自动完成,这里是它的编码 目前,我有一个这样的空间显示它 斯普林菲尔德Mo 65803 但是如果城市名称有两个这样的词 得梅因IA 50301 它由于分隔符而出错。。。我可能会把分隔符作为逗号,但在网站上看起来不太好Jquery 使用explode数组发布到数据库,jquery,sql,autocomplete,Jquery,Sql,Autocomplete,我拥有的是JQuery和自动完成。一切都很好,直到我尝试发布到SQL 我让它将城市名称、州缩写和Zipcode拉入自动完成,这里是它的编码 目前,我有一个这样的空间显示它 斯普林菲尔德Mo 65803 但是如果城市名称有两个这样的词 得梅因IA 50301 它由于分隔符而出错。。。我可能会把分隔符作为逗号,但在网站上看起来不太好 <?php if (is_numeric($_REQUEST['term'])) { $dblink = mysql_connect('localhost', '
<?php
if (is_numeric($_REQUEST['term']))
{
$dblink = mysql_connect('localhost', 'DBUser', 'DBpass') or die(mysql_error());
mysql_select_db("dbname") or die(mysql_error());
$rs = mysql_query('select StateInitials, City, ZipCode from locations where ZipCode like "'. mysql_real_escape_string($_REQUEST['term']) .'%" GROUP BY StateInitials, City', $dblink);
$data = array();
if ( $rs && mysql_num_rows($rs) )
{
while( $row = mysql_fetch_array($rs, MYSQL_ASSOC) )
{
$data[] = array(
'label' => $row['City'] .' '. $row['StateInitials'] .' '. $row['ZipCode'],
'value' => $row['City'] .' '. $row['StateInitials'] .' '. $row['ZipCode']
);
}
}
echo json_encode($data);
flush();
}
else
{
if ( !isset($_REQUEST['term']) )
exit;
$dblink = mysql_connect('localhost', 'DBUser', 'DBpass') or die(mysql_error());
mysql_select_db("DBName") or die(mysql_error());
$rs = mysql_query('select StateInitials, City, min(ZipCode) AS "Lowest Zip" from locations where City like "'. mysql_real_escape_string($_REQUEST['term']) .'%" GROUP BY StateInitials, City', $dblink);
$data = array();
if ( $rs && mysql_num_rows($rs) )
{
while( $row = mysql_fetch_array($rs, MYSQL_ASSOC) )
{
$data[] = array(
'label' => $row['City'] .' '. $row['StateInitials'] .' '. $row['Lowest Zip'],
'value' => $row['City'] .' '. $row['StateInitials'] .' '. $row['Lowest Zip']
);
}
}
echo json_encode($data);
flush();
}
?>
考虑到zip最终会做出改变
//first step
$zip = array_pop($pieces);
$state = array_pop($pieces);
//second step
$city = implode(" ",$pieces);
$OriginCity = $city
$OriginState = $state;
$OriginZip = $zip;
如果使用字符串函数和类似于$\u POST[“OriginCombo”]值的逻辑,则更好
*编辑**
我在这样的测试中尝试了这个,它显示了城市的数组
<?php
$_POST["DestCombo"] = "Des Moines ID 76789";
$Dest = $_POST["DestCombo"];
$pieces = explode(" ", $Dest);
// $DestCity = $pieces[0];
// $DestState = $pieces[1];
// $DestZip = $pieces[2];
$zip = array_pop($pieces);
$state = array_pop($pieces);
//second step
$city = implode(" ", $pieces);
$DestCity = $city;
$DestState = $state;
$DestZip = $zip;
echo $DestCity;
echo "<br>";
echo $DestState;
echo "<br>";
echo $DestZip;
?>
产出为:
警告:explode()要求参数2是字符串,数组在第14行的/home/SiteName/public_html/test.php中给出
身份证
76789您可以使用正则表达式获取\s..\s\d+,然后将其从原始字符串中删除。这不会仍然会给我造成与现在相同的错误,其中cityname是单独的。我对其进行了测试,city displays Arrayit可工作。。。。只需在$OriginCity=$city之后添加分号;并使用我的代码测试字符串,比如“Des Moines IA 50301”甚至“Des IA 50301”…$city=explode(“,$Dest”);是错误的。它应该是$city=explode(“,$pieces);警告:explode()要求参数2为字符串,数组在/home/SiteName/public_html/test.php的第14行ID 76789中给出
<?php
$_POST["DestCombo"] = "Des Moines ID 76789";
$Dest = $_POST["DestCombo"];
$pieces = explode(" ", $Dest);
// $DestCity = $pieces[0];
// $DestState = $pieces[1];
// $DestZip = $pieces[2];
$zip = array_pop($pieces);
$state = array_pop($pieces);
//second step
$city = implode(" ", $pieces);
$DestCity = $city;
$DestState = $state;
$DestZip = $zip;
echo $DestCity;
echo "<br>";
echo $DestState;
echo "<br>";
echo $DestZip;
?>