我正在尝试每次更改列表之前编辑选择列表。 我想要做的是将已经存在的列表更改为另一个列表,由php函数调用,该列表生成一个包含第一个列表和sql数据库的新信息的列表。
这很难解释所以这是我的代码:
我的代码基础
//php & html
....
$cli = lastNameList(); //first list
$tli = firstNameList(); //second list
echo"
$cli
<div id='editHtml'>$tli</div>
";
....
函数(php)
//the functions
function lastNameList(){
$options="<select id='lastNames'>";
$sql="SELECT * FROM lastName";
$result=mysql_query($sql);
$options.="<option value='blank'>-- last names --</option>" ;
while ($row=mysql_fetch_array($result)) {
$name=$row["name"];
$options.="<option value='$name'>$name</option>";
}
$options.= "</SELECT>";
return "$options";
}
function firstNameList(){
$options="<select id='firstNames' style='margin-right:40px;'>";
在这里遇到问题:
$sql="SELECT DISTINCT Name FROM firstName WHERE LastName ='lastNameSelectedGoesHere'";
//how do i get the value of the last name so i could make a query for it?
//using distinct to make sure there are no duplicates
$result=mysql_query($sql);
$options.="<option value='blank'>-- first name --</option>" ;
while ($row=mysql_fetch_array($result)) {
$name=$row["Name"];
$options.="<option value='$name'>$name</option>";
}
$options.= "</SELECT>";
return "$options";
}
js(如果重要的话,在php文件中)
echo" <script type='text/javascript'>
$('#lastNames').change(function() {
document.getElementById('eTech').innerHTML=";
$ll = firstNameList();
echo"$ll;
});";
因为你可以看到我的js文件是在一个php文件中,它确实有效,我试图在那里做的,是生成一个新的名字列表来替换旧的但我失败了......任何人都有对我应该做什么的回答或建议?
答案 0 :(得分:1)
使用ajax&amp; amp;并不复杂。的jquery!
快速肮脏的方法就是这样做
<div id="firstName"></div>
<script type='text/javascript'>
$('#lastNames').change(function() {
$('#firstName').load('getfirstname.php?lastname=' + $(this).val());
});
</script>
和getfirstname.php页面
$lastName = mysql_real_escape_string($_GET['lastname']);
$sql="SELECT DISTINCT Name FROM firstName WHERE LastName ='$lastName'";
//using distinct to make sure there are no duplicates
$result=mysql_query($sql);
$options="<select id='firstNames' style='margin-right:40px;'>";
$options.="<option value='blank'>-- first name --</option>" ;
while ($row=mysql_fetch_array($result)) {
$name=$row["Name"];
$options.="<option value='$name'>$name</option>";
}
$options.= "</SELECT>";
echo $options;
这是一个非常简单的页面,展示了如何使用ajax和jquery执行php代码。
<?
if(!isset($_GET['value'])):?>
<script src="jquery-1.7.1.js"></script>
<select id="select" >
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</options>
</select>
<div id="phpoutput"></div>
<script>
$('#select').change(function() {
$('#phpoutput').load('?value=' + $(this).val());
});
</script>
<?else:
$val = $_GET['value'];
echo "$val sent to server. $val*3 = " . $val *3;
?>
<?endif;?>