PHP / MYSQL查询HTML表单字段中的打印结果

时间:2016-11-30 14:53:09

标签: javascript php jquery html mysql

最近我被分配了一个大学课程的小组项目,我需要从数据库中查询客户名称,然后在表单字段中打印出该行的其余部分。我有选择菜单正常工作,它将打印到表单字段。但是,出现的问题是查询结果只会显示我选择的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>







​

2 个答案:

答案 0 :(得分:0)

而不是使用

$row = mysqli_fetch_array($result)

在第10行,使用

$row = $result->fetch_assoc()

$row = $result->fetch_array()

fetch_assocfetch_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];