-2

このコードは、Chrome で動作し、データベース リストがドロップダウン ボックスに表示されますが、IE では、ドロップダウン ボックスではなく単にリストされます。

if (!$result)
{
/*echo $query;*/
$message = 'ERROR: ' . sqlsrv_errors();
return $message;
}
else
{ 
$i = 0;
echo '<html><body><table><tr><td>&nbsp;Forte ID:&nbsp;&nbsp;&nbsp;</td></tr><select id="ForteID" name="ForteID"><table width="150"><tr>';
while ($i < sqlsrv_num_rows($result))
{
    $meta = sqlsrv_fetch($result, $i);
    echo '<td>' . $meta->name . '</td>';
    $i = $i + 1;
}
echo '';

while ( $row = sqlsrv_fetch_array( $result, SQLSRV_FETCH_ASSOC ))
{
    $count = count($row);
    $y = 0;
    echo '<tr><option>';
    while ($y < $count)
    {
        $c_row = current($row);
        echo '<td>' . $c_row . '</td>';
        next($row);
        $y = $y + 1;
    }
    echo '</option></tr>';
}
sqlsrv_free_stmt ($result);

echo '</table></select></body></html>';
}
sqlsrv_close( $connection);
?>

もっと良いことを説明する必要がある場合はお知らせください。前もって感謝します!

編集:

これは私が今持っているものです:

<?php
$serverName = 'localhost\SQLEXPRESS';
$connectionInfo = array('Database'=>'database', 'UID'=>'username', 'PWD'=>'password','ReturnDatesAsStrings'=>true,);
$connection = sqlsrv_connect($serverName, $connectionInfo);

$query = '  SELECT Column1
        FROM database.dbo.Reps 
        ORDER By Column1';
$result = sqlsrv_query($connection,$query);

// Move the data to a simple array to simplify presentation code.
$resultAsArray = array(); 
while ( $row = sqlsrv_fetch_array( $result, SQLSRV_FETCH_ASSOC )) {
$resultAsArray []= $row;
}
?>

<form method="get" action="getlog.php">
<select>
<?php foreach ($resultAsArray as $row): ?>
<option value="<?php= $row['Column1'] ?>"><?php= $row['Column1'] ?></option>
<?php endforeach; ?>
</select>
<input type="submit" name="getLog" value="Get Log">
</form>
</html>
4

1 に答える 1

4

最初のコメントで述べたように、select でのネスト テーブルは機能しないと予想されます。db クエリの内容を select に取り込もうとしているだけだと思います。<select>そのためには、と<option>タグが必要です。さらに、コードをより読みやすく (そして保守しやすく) するために、コードを DB アクセスとプレゼンテーションの 2 つの部分に分割します。私は sqlsrv ライブラリを使用しないので、db アクセスには疑似的なコードを使用します。

<?php
$resultSet = db_call_to_load_the_data();

// Move the data to a simple array to simplify presentation code.
$resultAsArray = array(); 
while ($row = $resultSet->getNextRow()) {
    $resultAsArray []= $row;
}

それからそれを表示するには...

<select>
<?php foreach ($resultAsArray as $row): ?>
    <option value="<?= $row['value_column'] ?>"><?= $row['display_value_column'] ?></option>
<?php endforeach; ?>
</select>

それがあなたが探しているものだと思います。単純化しすぎて申し訳ありません。

于 2012-12-18T20:56:03.880 に答える