Javascript PHP/MYSQL查询在HTML表单字段中打印结果
最近,我被分配了一个大学班级的小组项目,我需要从数据库中查询客户名称,然后在表单字段中打印出行的其余部分。我的选择菜单工作正常,它将打印到表单字段。但是,出现的问题是,查询结果将只显示我选择的MYSQL表中的最后一行。这里的任何帮助都将不胜感激。关于这个问题,我已经转了好几天了。我只是一个初学者,所以它可能有点混乱 谢谢Javascript PHP/MYSQL查询在HTML表单字段中打印结果,javascript,php,jquery,html,mysql,Javascript,Php,Jquery,Html,Mysql,最近,我被分配了一个大学班级的小组项目,我需要从数据库中查询客户名称,然后在表单字段中打印出行的其余部分。我的选择菜单工作正常,它将打印到表单字段。但是,出现的问题是,查询结果将只显示我选择的MYSQL表中的最后一行。这里的任何帮助都将不胜感激。关于这个问题,我已经转了好几天了。我只是一个初学者,所以它可能有点混乱 谢谢 Connection.PHP File <?php function Connect() { $dbhost = "localhost"; $dbuser =
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”中的最后一个值,因此它打印出的是正确的列,而不是与我选择的值关联的正确值。代码似乎打印出了该列中的最后一个值。谢谢你的帮助。我发现了完全不同的代码,帮助我解决了这个问题。谢谢你的建议不幸的是,这也不起作用。我在解决这个问题上仍然有点困难。嗨,布兰登,你能提供任何输出或输出吗