リストボックスは、各要素の下に空白の行スペースを表示します。幅も増やしましたが、空白行が表示されます。参考のためにスクリーンショットを添付しました。私はコードファイルを添付しました。私はドロップダウンリストからレコードを選択する関数を使用しています。ドロップダウンリストは機能していますが、スクリーンショットに表示されているすべての値の下に空白のレコードが表示されます。リストボックスは、各要素の下に空白の行スペースを表示します。
第一<?php
$selected = '';
function get_options($select) {
$categories = array('Information Technology' => 1, 'Management' => 2);
$options = '';
while (list($k, $v) = each($categories)) {
if ($select == $v) {
$options .= '<option value="' . $v . '" selected>' . $k . '<option>';
} else {
$options .= '<option value="' . $v . '" >' . $k . '<option>';
}
}
return $options;
}
require_once('dbconnect.php');
if (isset($_POST['categories'])) {
$selected = $_POST['categories'];
echo $selected;
}
if ($selected == 1) {
$selectedcat = 'Information Technology';
$selectsql = "SELECT * FROM courses where ccategory='$selectedcat'";
} else
if ($selected == 2) {
$selectedcat = 'Management';
$selectsql = "SELECT * FROM courses where ccategory='$selectedcat'";
} else {
$selectsql = "SELECT * FROM courses";
}
//require_once('dbconnect.php');
include('header-basic-light.php');
//$selectsql="SELECT * FROM courses";
$res = (mysqli_query($con, $selectsql));
if (!mysqli_query($con, $selectsql)) {
die(mysqli_error($con));
}
mysqli_close($con);
//header('Location:index.php');
?>
<HTML>
<head>
<title>"View Information"</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<div class="row">
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<label for="categories">Select the Category : </label>
<select name="categories" style="width:250px;" onchange="this.form.submit();">
<?php echo get_options($selected); ?>
</select>
</form>
<h2>View Information</h2>
<table class="table">
<tr>
<th>#</th>
<th>cname</th>
<th>start_date</th>
<th>duration</th>
<th>Remarks</th>
<th>Options</th>
</tr>
<?php
while ($r = mysqli_fetch_assoc($res)) {
?>
<tr>
<td><?php echo $r['cno']; ?></td>
<td><?php echo $r['cname']; ?></td>
<td><?php echo $r['start_date']; ?></td>
<td><?php echo $r['duration']; ?></td>
<td><?php echo $r['remarks']; ?></td>
<?php
if ($r['ccategory'] == 'Information Technology') {
$catnum = 1;
}
if ($r['ccategory'] == 'Management') {
$catnum = 2;
}
?>
<td><a href="loadpage.php?id=<?php echo $catnum; ?>">Details  </a>
</tr>
<?php
}
?>
</table>
</body>
</html>
var_dump($ options)を入れてください。あなたの関数の$ options行を返す前に、ここに出力を貼り付けますか? – flauntster
さらに、このスクリプトは現在の状態でSQLインジェクションに脆弱であるため、入力バルスをサニタイズすることを確認してください:) – flauntster
_Suggestion:_オプションを反復するより簡単な方法は次のようになります: 'foreach($ categories as $ k => $ v) 'の代わりにあなたの複雑な' while'-loop(これは基本的にforeachをエミュレートする効率の悪い方法です)。 –