首页 > 解决方案 > AJAX/PHP - 使用一个 ajax 调用填充不同类型的输入字段

问题描述

我想出了如何通过 AJAX 填充文本框。我还能够从 AJAX 填充下拉选择框。但我似乎无法从一个 AJAX 调用中同时填充文本框和选择框。

这是我所拥有的娱乐:

<?php echo "
<script type="text/javascript" language="javascrpt">$(document).ready(function(){ 
        $('#test').change(function() {
            $.ajax({
                url:"myurl",
                type:"POST",
                dataType: "json",
                data: {test: $(this).val()},
                success:function(data)
                {
                    $('#team1').val(data["team1"]);
                    $('#team2').val(data["team2"]);
                    $('#team_member1').val(data["g1"]);
                }
            });
        });
});
</script>

<select name='test' id='test'>
  <option value='1'></option>
  <option value='2'></option>
  <option value='3'></option>
</select>

<input type='text' name='team1' id='team1' value='".$t1."'>
<select name='team_member1 id='team_member1'>
  <option value='".$output."'></option> <!--!!HELP HERE!!-->
</select>

<input type='text' name='team2' id='team2' value='".$t2."'>

myurl.php

<?php
$con = mysqli_connect("localhost","root","root","local");
$output='';

$sql = "SELECT name FROM team WHERE id='".$_POST["test"]."'";
$result = $con->query($sql);

while($row = $result->fetch_assoc())
{
    $output .= '<option value="'.$row['name'].'">'.$row['name'].'</option>';
}


$t1='Boston Falcons';
$t2='Human Resources';

$response = array(
    "team1" => $t1,
    "team2" => $t2,
    "g1"=>$output, <---mysql resultset for dropdown not working
    );
    echo json_encode($response);
?>

更改后#test,AJAX 能够 使用它们各自的字符串预先填充#team1和文本字段。#team2myurl.php

但是,它不会预先填充#team_member1选项列表$output(mysql 结果集)。

提前致谢。

标签: phpmysqljsonajaxdropdown

解决方案


原来在AJAX成功,我需要返回$('#team_member1').html(data["g1"]);

代替 $('#team_member1').val(data["g1"]);


推荐阅读