2012-11-22 47 views
0

我运行一个查询,该查询仅返回来自特定字段的第一个单词,该字段具有多个由空格分隔的单词。查询的结果将是我动态创建的选择框的值。我有3个选择框是根据另一个的选择动态创建的。显示选择结果在PHP

问题是查询返回整个句子,并显示在选择框中。我试图单独在数据库中运行查询,它似乎给了我正确的结果。

这是代码片段。我该如何解决它?

<?php 
    //************************************** 
//  First selection results  // 
//************************************** 
if(isset($_GET['func'])&& $_GET['func'] == "drop_1") { 
    drop_1($_GET['drop_var']); 
} 

function drop_1($drop_var) 
{ 
$result = mysql_query("SELECT DISTINCT SUBSTRING_INDEX(`h_name` ,' ', 1) AS name FROM hypermarket_em") or die(mysql_error()); 
echo '<select name="drop_2" id="drop_2"><option value=" " disabled="disabled" selected="selected">Select City</option> 
     <option value="ALL" >ALL</option>'; 
while($drop_2 = mysql_fetch_array($result)) 
{ 
     echo '<option value="'.$drop_2['name'].'">'.$drop_2['name'].'</option>'; 
} 
echo '</select>'; 
echo "<script type=\"text/javascript\"> 
    $('#wait_2').hide(); 
    $('#drop_2').change(function(){ 
    $(this).parent().parent().find('.drop2').val($(this).val()); 
    $('#wait_2').show(); 
    $('#result_2').hide(); 
    $.get(\"func.php\", { 
    func: \"drop_2\", 
    drop_var: $('#drop_2').val() 
    }, function(response){ 
    $('#result_2').fadeOut(); 
    setTimeout(\"finishAjax_tier_three('result_2', '\"+escape(response)+\"')\", 400); 
    }); 
    return false; 
    }); 
    </script>"; 
} 
?> 

任何想法非常赞赏。谢谢。

+0

对不起,这是错误的复制粘贴。请参阅我的编辑。 – Wafa

+0

避免使用mysql_ *函数,因为它们已被弃用,并且非常不鼓励使用。看看这篇关于PHP.net的文章来选择一个替代API:http://www.php.net/manual/en/mysqlinfo.api.choosing.php – Timr

回答

1

您设置的子

SUBSTRING_INDEX(`h_name` ,' ', 1) AS name 

但仍引用完整的原始字符串$drop_2['h_name']。尝试更改为 -

while($drop_2 = mysql_fetch_array($result)) 
{ 
    echo '<option value="'.$drop_2['name'].'">'.$drop_2['name'].'</option>'; 
} 

EDIT--

如果您正确使用别名name$drop_2['name'],我不知道为什么它仍然回荡完整的字符串。您可以使用我首先回答的explode()作为失败保险箱

while($drop_2 = mysql_fetch_array($result)) 
{ 
    $firstWord = explode(' ',trim($drop_2['name'])); 
    echo '<option value="'.$firstWord[0].'">'.$firstWord[0].'</option>'; 
} 
+0

我已经使用了上面我编辑过的子字符串。当我单独运行查询时,我在数据库中得到了正确的结果。但不是我在PHP中显示它。 – Wafa

+0

我编辑了我的答案,根据你的编辑 – Sean

+0

我也这样做了。但没有帮助.. :( – Wafa