我只是想知道我是否在关于动态加载页面的正确轨道上。基本上我有一个主页,我想从我的mysql数据库加载组合框。目前我的body标签中有一个onload =“load_home();函数。这会在我的js文件中调用一个函数,该函数又调用我的load_home.php文件.load_home.php在html中创建我的组合框并返回它。然后js使用 的document.getElementById( “改变”)的innerHTML + = xmlhttp.responseText。 用于将组合框添加到我的页面的行。
这是我正在努力实现的长版吗?我会更好地将结果集返回到javascript并使用json或其他东西为我的页面构建html。我之前想知道更多编码。第一个组合中的所选项目将依次输入另一个组合(品牌和型号)中的信息。我正在使用js,这样就可以在没有页面重新加载的情况下完成。
先谢谢你。
EDIT .................
JavaScript文件:
function load_home() {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("data").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET", "load_home.php", true);
xmlhttp.send();
}
}
HTML文件:
</head>
<body onload="load_home();">
<p><b>Welcome to my page</b></p>
<div id="data">
</div>
</body>
</html>
这是我每次想要更改页面元素时所做的事情。看起来像XMLHttpRequest()的很多函数来实现我想要的东西。 load_home.php将在mysql数据库的html中生成一个表。
答案 0 :(得分:0)
我的新Js
$(document).ready(function(){
$("#makeCombo").load("PHP/load_home.php");
});
我的php
<?php
//connect to database
include('db_connect.php');
$sql = "SELECT MAKES FROM makes_and_models GROUP BY MAKES ORDER BY MAKES ASC";
$result = mysql_query($sql);
//counter to control table rows -- will print 5 columns before moving to a new row
$count = 0;
echo '<select id="makeCombo">';
echo '<option value="Select Make">Select Make</option>';
while($row=mysql_fetch_array($result)) {
//if counter is 0 start new row
echo '<option value="' . $row['MAKES'] . '">' . $row['MAKES'] . '</option>';
}
echo '</select>';
//close db connection
mysql_close();
?>
通过这种方式设置与php的组合,我是在正确的轨道吗?