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

Javascript PHP/MYSQL查询在HTML表单字段中打印结果,javascript,php,jquery,html,mysql,Javascript,Php,Jquery,Html,Mysql,最近,我被分配了一个大学班级的小组项目,我需要从数据库中查询客户名称,然后在表单字段中打印出行的其余部分。我的选择菜单工作正常,它将打印到表单字段。但是,出现的问题是,查询结果将只显示我选择的MYSQL表中的最后一行。这里的任何帮助都将不胜感激。关于这个问题,我已经转了好几天了。我只是一个初学者,所以它可能有点混乱 谢谢 Connection.PHP File <?php function Connect() { $dbhost = "localhost"; $dbuser =

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

?>
Connection.PHP文件
我的查询页面

 <?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>







​

函数populatesecondbox(val){
var dropdown=document.getElementById(“firstName”);
var pphone=document.getElementById(“secondinputbox”);
var secondfname=document.getElementById(“thirdinputbox”);
var str=“”;
var-sfname=“”;
pphone.value=str;
secondfname.value=sfname;
}
​
而不是使用

$row = mysqli_fetch_array($result)
$pphone = $row['P_Phone'];
在第10行,使用

$row = $result->fetch_assoc()

fetch\u assoc
fetch\u array
之间的区别在于
fetch\u array
包含数值索引和命名索引。例如,
echo$row[0]
的输出与
echo$row['id']
的输出相同。然而,
fetch\u assoc
仅包含命名索引。

而不是使用

$row = mysqli_fetch_array($result)
$pphone = $row['P_Phone'];
在第10行,使用

$row = $result->fetch_assoc()


fetch\u assoc
fetch\u array
之间的区别在于
fetch\u array
包含数值索引和命名索引。例如,
echo$row[0]
的输出与
echo$row['id']
的输出相同。然而,
fetch\u assoc
仅包含命名索引。

基于提供的循环语句

$pphone = $row['P_Phone'];
$pphone
在循环结束时被分配到最后一行,因为每次迭代都会用当前行覆盖$pphone,直到循环中的哪个点
$pphone
获得最后一个值

而不是使用

$row = mysqli_fetch_array($result)
$pphone = $row['P_Phone'];
在循环中尝试以下操作

$pphone[] = $row['P_Phone'];
$pphones = "['".join("','" , $pphone)."']";
您的串联电话应在环路后提供

$pphone[] = $row['P_Phone'];
$pphones = "['".join("','" , $pphone)."']";
在js脚本标记中,只需将
$pphones
作为字符串

var pphones = <?php echo $pphones; ?>;

ddl = document.getElementById('firstname');
pphone.value = pphones[ddl.selectedIndex];
var pphones=;
ddl=document.getElementById('firstname');
pphone.value=pphones[ddl.selectedIndex];

基于提供的循环语句

$pphone = $row['P_Phone'];
$pphone
在循环结束时被分配到最后一行,因为每次迭代都会用当前行覆盖$pphone,直到循环中的哪个点
$pphone
获得最后一个值

而不是使用

$row = mysqli_fetch_array($result)
$pphone = $row['P_Phone'];
在循环中尝试以下操作

$pphone[] = $row['P_Phone'];
$pphones = "['".join("','" , $pphone)."']";
您的串联电话应在环路后提供

$pphone[] = $row['P_Phone'];
$pphones = "['".join("','" , $pphone)."']";
在js脚本标记中,只需将
$pphones
作为字符串

var pphones = <?php echo $pphones; ?>;

ddl = document.getElementById('firstname');
pphone.value = pphones[ddl.selectedIndex];
var pphones=;
ddl=document.getElementById('firstname');
pphone.value=pphones[ddl.selectedIndex];

每次在新代码中使用数据库扩展时,它都会被弃用,并且已经存在多年,在PHP7中永远消失。如果你只是在学习PHP,那么就把精力花在学习
PDO
mysqli
数据库扩展上。我认为您的问题在于您不知道PHP在服务器上运行,javascript在浏览器中运行。因此,javascript代码在运行时不能直接访问PHP变量。我理解您在这里的陈述,但我想知道您的确切意思是什么?该脚本确实打印PHP变量,但只打印MYSQL表中的最后一行,而不是从下拉菜单中选择的行。我认为没有人能够正确回答您的问题,直到@riggsfully建议,您将用
mysqli
函数替换
mysqli
函数。请将PHP和Javascript代码按其在实际代码中出现的顺序排列。每次您在新代码中使用数据库扩展时,它都会被弃用,多年来一直在PHP7中消失。如果你只是在学习PHP,那么就把精力花在学习
PDO
mysqli
数据库扩展上。我认为您的问题在于您不知道PHP在服务器上运行,javascript在浏览器中运行。因此,javascript代码在运行时不能直接访问PHP变量。我理解您在这里的陈述,但我想知道您的确切意思是什么?该脚本确实打印PHP变量,但只打印MYSQL表中的最后一行,而不是从下拉菜单中选择的行。我认为没有人能够正确回答您的问题,直到@riggsfully建议,您将用
mysqli\u
函数替换
mysql\u
函数。请按代码在实际代码中的显示顺序排列PHP和Javascript代码谢谢您的建议。我试过了,但不幸的是,它仍然只查找最后一行,而不是所选的行。谢谢你的建议。我尝试了它们,但不幸的是,它仍然只查找最后一行,而不是所选的行。不幸的是,这也不起作用。我在解决这个问题上仍然有点困难。嗨,布兰登,你能在它不起作用的地方提供任何输出或结果吗?如果需要,我可以修改提供的响应。谢谢,我很乐意提供进一步的帮助。我的表格将显示“F_Name、L_Name、P_Phone”列下拉菜单正确显示所有行,但是代码正在打印“P_Phone”中的最后一个值,因此它打印出的是正确的列,而不是与我选择的值关联的正确值。代码似乎打印出了该列中的最后一个值。谢谢你的帮助。我发现了完全不同的代码,帮助我解决了这个问题。谢谢你的建议不幸的是,这也不起作用。我在解决这个问题上仍然有点困难。嗨,布兰登,你能提供任何输出或输出吗