最近我被分配了一个大学课程的小组项目,我需要从数据库中查询客户名称,然后在表单字段中打印出该行的其余部分。我有选择菜单正常工作,它将打印到表单字段。但是,出现的问题是查询结果只会显示我选择的MYSQL表中的最后一行。这里的任何帮助将不胜感激。在这个问题上,我一直在转动轮子几天。我只是一个初学者编码器,所以它可能有点乱。
谢谢,
Connection.PHP File
<?php
function Connect()
{
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "medley";
// Create connection
$conn = new mysqli($dbhost, $dbuser, $dbpass, $dbname) or die($conn->connect_error);
return $conn;
}
?>
我的查询页
<?php
require 'connection.php';
$conn = Connect();
$sql = "SELECT * FROM cust_info";
$result = $conn->query($sql);
echo "<select id='firstName' name='firstname' onchange=populatesecondbox()>";
while ($row = mysqli_fetch_array($result)) {
echo "<option value='" . $row['F_Name'] . "', '" . $row['L_Name'] . "'> " . $row['F_Name'] . " " . $row['L_Name'] . "</option>";
$pphone = $row['P_Phone'];
}
echo "</select>";
?>
<input id="secondinputbox" type="text" />
<script type="text/javascript">
function populatesecondbox(val) {
var dropdown = document.getElementById("firstName");
var pphone = document.getElementById("secondinputbox");
var secondfname = document.getElementById("thirdinputbox");
var str = "<?php echo $pphone ?>";
var sfname = "<?php echo $sfname ?>";
pphone.value = str;
secondfname.value = sfname;
}
</script>
答案 0 :(得分:0)
而不是使用
$row = mysqli_fetch_array($result)
在第10行,使用
$row = $result->fetch_assoc()
或
$row = $result->fetch_array()
fetch_assoc
和fetch_array
之间的区别在于fetch_array
包含数字索引和命名索引。例如,echo $row[0]
将与echo $row['id']
输出相同。鉴于fetch_assoc
仅包含命名索引。
答案 1 :(得分:0)
基于提供的循环语句
$pphone = $row['P_Phone'];
在循环终止时, $pphone
被分配到最后一行,因为每次迭代都会覆盖当前行的$ pphone,直到循环$pphone
中的哪一点获得最后一个值。
而不是使用
$pphone = $row['P_Phone'];
在循环中尝试以下操作。
$pphone[] = $row['P_Phone'];
循环后应提供连接的手机。
$pphones = "['".join("','" , $pphone)."']";
在你的js script标签中,只需将$pphones
作为字符串;
var pphones = <?php echo $pphones; ?>;
ddl = document.getElementById('firstname');
pphone.value = pphones[ddl.selectedIndex];