仅在PHP中显示数据库中的一两列。
我在PHPMyAdmin中有一个MySQL数据库。有一个表,该表中有多个列,例如薪水,薪金预付款等。我想在用户选择薪水时显示,它仅显示薪水列,即薪水列中的所有数据。这是我的代码。但这是行不通的。请帮忙。
<?Php
error_reporting(0);
include "config_1.php";
echo "<form method=post action='viewexpensebagnan.php' >
<select name='cn'>
<option value='None'>choose option </option>
<option value='salary'> salary </option>
<option value='sa'> sa </option>
<option value='house'> house </option>
<option value='gr'> gr </option>
<option value='bo'> bo </option>
<option value='goutam'> goutam </option>
</select>
<input type=submit ><br>
</form>";
if(value=='salary')
{
$query="select salary from expensebagnan";
$count=$dbo->prepare($query);
$count->execute();
$no=$count->rowCount();
echo "<table class='border' style='text-align:center;' width='100%' >";
echo "</td><td>";
echo "<tr><th>Salary</th></tr>";
foreach ($dbo->query($query) as $row){
echo "<tr><td>$row[salary]</td></tr>";
}
echo "</table>";
}
?>
例如:如果我从下拉列表中选择薪水并提交,那么它将仅显示薪水列数据。
答案 0 :(得分:1)
使用Ajax可以轻松完成下拉列表的更改事件,您可以将带有drop down值的请求发送到PHP代码,PHP代码将为您返回所选选项的值。
例如。请考虑以下代码(将所有代码放在一个文件中,例如index.php)
<select id='value'>
<option value='None'>choose option </option>
<option value='salary'> salary </option>
<option value='sa'> sa </option>
<option value='house'> house </option>
<option value='gr'> gr </option>
<option value='bo'> bo </option>
<option value='goutam'> goutam </option>
</select>
<button type=button value="submit" id="submit" > Submit </button>
<div id="showData"></div>
现在使用jquery和ajax将请求发送到PHP的方式为:
<script type="text/javascript">
$(document).ready(function() {
$("#submit").click(function() {
$.ajax({
url : "getValues.php",
cache: false,
type: "get",
data: "value=" + $("#value").val(),
success: function(data) {
$("#showData").html(data);
}
});
})
});
</script>
您的PHP代码可能如下所示( getValues.php ):
<?php
if (isset($_REQUEST['value']) && $_REQUEST['value'] == 'salary')
{
$query = "select salary from expensebagnan";
$count = $dbo->prepare($query);
$count->execute();
$no = $count->rowCount();
echo "<table class='border' style='text-align:center;' width='100%' >";
echo "</td><td>";
echo "<tr><th>Salary</th></tr>";
foreach ($dbo->query($query) as $row){
echo "<tr><td>" . $row[salary] . "</td></tr>";
}
echo "</table>";
}
?>
答案 1 :(得分:0)
这段代码有很多问题,但是为什么看不到salary-key的值的原因是,使用这种数组符号,您需要将数组访问包装到花括号中,如下所示:>
echo "<tr><td>{$row['salary']}</td></tr>";