使用来自AJAX的JQuery追加

时间:2015-09-15 06:35:43

标签: php jquery ajax

我想创建一个由另一个下拉列表填充的下拉列表。我正在使用AJAX和PHP。

我已经创建了这样的AJAX文件:

<?php
if(isset($_POST['selname']))
{
    include('config.php');
    $clientId = $_POST['selname'];

    $query  = "SELECT tv.*, v.* FROM t_vorder tv LEFT JOIN m_vehicle v ON tv.tv_vehicleid = v.v_id WHERE tv_orderid = '$clientId'";
    $result = mysqli_query($conn, $query);
    while($row = mysqli_fetch_array($result, MYSQLI_ASSOC))
    {
        $namek = "";
        $namek .= $row['v_id'];
        if($row['v_jenis'] != "" || !empty($row['v_jenis']))
        {
            $namek .= ' - '.$row['v_jenis'];
        }
        if($row['v_platno'] != "" || !empty($row['v_platno']))
        {
            $namek .= ' - '.$row['v_platno'];
        }
        if($row['v_merk'] != "" || !empty($row['v_merk']))
        {
            $namek .= ' - '.$row['v_merk'];
        }
        $xx .= "<option value='$row[v_id]'>$namek</option>";
    }
    return $xx;
    exit;
}
?>

之后,我将这个AJAX文件称为我的主程序,这是我的JQuery代码:

function getVehicle()
    {
        var selname = $("select[name=noorder]").val();
        $('#combobox2').html('');
        $.ajax({ url: "getVehicle.php",
            data: {"selname":selname},
            type: 'post',
            dataType: "json",
            success: function(output) {
              console.log(output);
                $('#combobox2').append(output);
            }

        });
    }

最后是我的HTML代码:

<select name="noorder" id="combobox" class="form-control">
    //get my vehicle from database
    <?php
        $querycon = mysqli_query($conn, "SELECT * FROM m_order WHERE o_status='1' ORDER BY o_id");
        while($rowcon = mysqli_fetch_array($querycon, MYSQLI_ASSOC))
        {
            $invoice = sprintf("%s%"."04d", $rowcon['o_code'], $rowcon['o_id']);
    ?>
            <option value="<?php echo $rowcon['o_id']; ?>"><?php echo $invoice; ?></option>
    <?php
        }
    ?>
</select>
<select name="kendaraan" class="form-control" id="combobox2" onclick="getVechile();">

</select>

我的Ajax工作正常,我的控制台日志返回文件已完成加载。但我的下拉列表没有附加Jquery。任何人都知道我的错误在哪里?

3 个答案:

答案 0 :(得分:2)

你没有要求{j}成功回调json obj / data,然后在ajax属性中不需要dataType: "json",。删除该内容并将return $xx;更改为echo $xx;

答案 1 :(得分:0)

AJAX请求仅在页面打印出来时从PHP文件中获取数据。

从PHP(AJAX后端)返回数据到jQuery / Javascript并不意味着什么。

更改

return $xx; 

echo $xx;

答案 2 :(得分:0)

您在ajax调用中使用dataType: "json",因此它在JSON中得到响应。首先从ajax调用中删除dataType: "json"行。然后在php脚本中用return $xx;替换echo $xx;

希望这个解决方案对您有用,谢谢!