簡體   English   中英

用PHP填充下拉列表不起作用

[英]Populating drop-down list with PHP not working

我正在嘗試使用PHP填充到我的網站的下拉列表,但未顯示任何內容。 如該圖所示為空。 在狀態下什么也沒顯示。

請幫助我從數據庫結果中獲取一些詳細信息。

我的代碼是:

<?php
$con=mysql_connect('localhost', '', '')or die("Failed to connect to MySQL: " . mysql_error());
$db=mysql_select_db('')or die("Failed to connect to MySQL: " . mysql_error());
?>

<form>
    <div class="form-group">        
        <div class="form-control-small">
            <select id="search_status" name="state" data-placeholder="State">
                <option value=""> </option>
                <?php
                    $dd_res=mysql_query("Select DISTINCT state from MyTable");
                    while($row=mysql_fetch_row($dd_res))
                    { 
                        echo "<option value='$row[state]'> $row[state] </option>";
                    }
                ?>          
            </select>
        </div>

        <div class="form-control-small">
            <select id="search_bedrooms" name="dist" data-placeholder="District">
                <option value=""> </option>
                    <?php
                        $dd_res=mysql_query("Select DISTINCT dist from MyTable");
                        while($r=mysql_fetch_row($dd_res))
                        { 
                            echo "<option value='$row[dist]'> $row[dist] </option>";
                        }
                    ?>
            </select>
        </div>

        <div>
            <button type="submit" class="btn btn-fullcolor">Search</button>
        </div>
    </div>
</form>

嘗試這樣的事情:

$arr = array(1 => 'MP', 2 => 'UP');

echo '<select>';
foreach($arr as $key => $val)
{
    echo '<option value="'.$key.'">'.$val.'</option>';
}
echo '</select>';

它將生成類似如下的html:

<select>
  <option value="1">MP</option>
  <option value="2">UP</option>
</select>

您不能以字符串顯示Array值,即使使用雙引號也是如此。

您必須使用大括號或串聯

echo "<option value='{$row[state]}'> {$row[state]} </option>";

要么

echo "<option value='".$row[state]."'> ".$row[state]." </option>";

嘗試這個:

 echo "<option value='".$row['state']."'> ".$row['state']."</option>";

根據文檔, mysql_fetch_row()從與指定結果標識符關聯的結果中獲取一行數據。 該行以數組形式返回。 每個結果列都存儲在從偏移量0開始的數組偏移量中。

這意味着您無法達到這樣的列名:$ row [“ state”]。

請嘗試:

echo "<option value='$row[0]'> $row[0] </option>";

但是,不建議使用mysql_querymysql_fetch_row函數,它們將在PHP版本7中刪除。這對您來說也可能是一個問題。 考慮升級到更現代的與MySQL交互的方式。 您可以在這里找到替代方法:

http://php.net/manual/en/mysqlinfo.api.choosing.php

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM