Jquery 使用explode数组发布到数据库

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', '

我拥有的是JQuery和自动完成。一切都很好,直到我尝试发布到SQL

我让它将城市名称、州缩写和Zipcode拉入自动完成,这里是它的编码

目前,我有一个这样的空间显示它

斯普林菲尔德Mo 65803

但是如果城市名称有两个这样的词

得梅因IA 50301

它由于分隔符而出错。。。我可能会把分隔符作为逗号,但在网站上看起来不太好

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