无法使用ajax进行正确的选择

时间:2014-02-04 19:17:13

标签: php jquery ajax

下拉不会使用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()); 
?>

1 个答案:

答案 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函数并使用传递的数据。无论哪种方式你选择。