2017-08-14 148 views
-1

我刚刚写了一个城市名称的datalist代码,它将从给定的状态id中找到城市。但在选择城市名称时,它也显示州ID,选择后只显示州ID,而不显示城市名称。 这是代码。如何将城市名称作为值而不是id返回?

<?php 
    echo '<input type="text" list="city" class="form-control" /> 
       <datalist id="city" >'; 
    $con = mysql_connect("localhost","root",""); 
    $db = mysql_select_db("placedb",$con); 

    $query = mysql_query("SELECT * FROM `cities` WHERE state_id BETWEEN 1 AND 41 ORDER BY name ASC ") or die(mysql_error()); 

    $items = array(); 
    while ($row = mysql_fetch_array($query)) { 
     $items[] = $row; 
    } 

    foreach($items as $item){ 

     printf('<option id="city" value="%s">%s</option>', $item['id'], $item['name']); 
    } 
    echo '</datalist>'; 

    ?> 
+0

删除'$项目[ '身份证']'我猜?如果你刚刚写了这个肯定你会知道这一点。除非我错过了什么? – Script47

+0

**不要**使用**弃用和不安全的** _mysql _ * - 函数。从PHP 5.5(2013年)开始,它们已被弃用,并且在PHP 7中(2015年)完全删除。改用MySQLi或PDO。 2.您对** [SQL Injections](http://php.net/manual/en/security.database.sql-injection.php)广泛开放,并且确实应该使用[Prepared Statements](http:/ /php.net/manual/en/mysqli.quickstart.prepared-statements.php)而不是连接你的查询,如果你使用上面提到的MySQLi或PDO,可以使用它们。 –

+0

看起来像复制粘贴。 – Sand

回答

0

你必须使用的$item['name']代替$item['id']

0

我认为printf的应该是

printf('<option id="city" value="%d">%s</option>', $item['id'], $item['name']); 
相关问题