下拉不会使用ajax加载,可能是因为与加载css的类(select_wrapper)存在冲突,这可能是由js脚本调用的。
我有这两个下拉菜单:
<div class="select_wrapper">
<form action="" method="post" name="anunt" id="f_anunt">
<label><span>* </span><strong>Manufacturer:</strong></label>
<select class="select_5" name="marca" id="marca">
<?php
$result = mysql_query("SELECT id_marca, denumire FROM marci ORDER BY ordine");
while($row = mysql_fetch_array($result))
{
echo ("<option value='".$row['id_marca']."'>".$row['denumire']."</option>");
}
?>
</select>
</div>
<div class="select_wrapper">
<label><span>* </span><strong>Model: </strong></label>
<select class="select_5" name="model" id="model">
<?php
$result = mysql_query("SELECT id_model, denumire FROM modele WHERE id_marca=1");
while ($row = mysql_fetch_array($result))
{
echo ("<option value='".$row['id_model']."'>".$row['denumire']."</option>");
}
?>
</select>
</div>
以下是可以正常使用的js代码:
$("#marca").change(get_model);
function get_model(e)
{
$.post("ajax_get_model.php",{id_marca:$(this).val()},function(data,status)
{
$("#model").html(data); // pun modelele
});
}
这里是加载了ajax的php文件(在我做这个选择之后,在下拉列表中依赖于第一个它转到另一个选择中看到的“inspect elements”但是在下拉列表中我看到第一个查询):
<?php
include_once("config.php");
$id_marca = $_POST['id_marca'];
$sir_sql="SELECT id_model, denumire FROM modele WHERE id_marca=$id_marca ";
if ($conn)
{
$result=mysql_query($sir_sql,$conn);
while ($row = mysql_fetch_array($result))
echo ("<option value='".$row['id_model']."'>".$row['denumire']."</option>");
}
else
die('Incorrect:<br> ' . mysql_error());
?>
答案 0 :(得分:0)
我认为问题在于您的javascript,将其更改为此并尝试..
$("#marca").change(function(){
$.post("ajax_get_model.php",{id_marca:$(this).val()},function(data,status)
{
$("#model").html(data); // pun modelele
});
}
你这样做的方式,你没有向函数传递任何东西,$(this)超出了你期望的范围。如果您使用上面的匿名函数它应该工作,或者将$(this).val()传递给您的get_model函数并使用传递的数据。无论哪种方式你选择。