PHP中SQL的下拉列表值

PHP中SQL的下拉列表值,php,javascript,Php,Javascript,我想用php做这个函数。我有两个字段,一个是文本框,另一个是 另一个是下拉列表。下拉列表包含来自sql的值。当从下拉列表中选择一个值时,我希望文本框根据所选的选项填充 以下是下拉列表代码 <td>Test Group ID</td> <td><select id="testgroupid" name="testgroupid" style="column-width:35"> <option value="<?php echo $

我想用php做这个函数。我有两个字段,一个是文本框,另一个是 另一个是下拉列表。下拉列表包含来自sql的值。当从下拉列表中选择一个值时,我希望文本框根据所选的选项填充

以下是下拉列表代码

<td>Test Group ID</td>
 <td><select id="testgroupid" name="testgroupid" style="column-width:35">
  <option value="<?php echo $testgroupid;?>"><?php echo $testgroupid;?></option>
   <?php 
   $x=new con();
   $x->connect();
   $retval = "select distinct(Id) from testgroupmaster";
   $sql1 = mysql_query($retval) or die (mysql_error());
   while($res=mysql_fetch_array($sql1, MYSQL_BOTH)){
    ?> 
<option value="<?=$res['Id'];?>"><?=$res['Id'];?></option>
<?
}
?>
  </select></td>
根据id,我希望文本框被填充,我如何才能做到这一点?请帮助朋友

<tr>
<td>Test Group Name</td>
<td><input type="text" name="testgroupname" id="zipsearch" value="<?php echo $testgroupname; ?> "></td>
</tr>

如果您希望在下拉选择更改后立即填充文本框,最简单的方法是使用javascript:

<td><select id="testgroupid" name="testgroupid" style="column-width:35" 
   onchange='document.getElementsByName("testgroupname")[0].value =   
    document.getElementById("testgroupid").options[e.selectedIndex].value;'> 

您需要JavaScript来实现这一点。使用jQuery或您最喜欢的库,并将事件侦听器绑定到组合框

jQuery的示例:

$("#myCombo").change(function(e){
    $("myTextField").val( $("#myCombo").val() );
});

我有一个建议涉及jQuery。我不知道您是否正在使用此库,但我仍在发布它:

<script type="text/javascript">
     $(function() {
         $("#testgroupid").change(function{
            $("#zipsearch").text($(this option:selected).val();
         });
     });
</script>

在dropbown框上的change事件中,此函数启动,并相应地设置zipsearch输入。

我不确定$testgroupname来自何处,但我认为您希望在下拉列表中选择后获得该值。如果客户机上没有可用的值,则必须以某种方式从服务器检索该值

您不能使用PHP填充文本框,因为在下拉列表中选择某个选项时,您不会发送帖子。关于如何解决这个问题,有很多选择。我个人会使用Ajax来填充文本框,而无需向服务器发送邮件

好的起点: 像这样试试

<script>
    function selecteditem(selectedval)
    {
        jQuery.post("<?php echo JURI::root().'test.php'?>", { id: selectedval },
        function(data) {
            jQuery('.zipsearch').val(data);      
        });
    }
</script>


//test.php on the root
<?php 
    $val=$_POST['id'];

    //do what you want with $val 
    //and say final output is in variable $result than echo it

    echo $result;
?>


<!--html code here-->

<select id="testgroupid" name="testgroupid" style="column-width:35" onclick="selecteditem(this.value);">
    <option value="<?php echo $testgroupid;?>"><?php echo $testgroupid;?></option>
    <?php 
        $x=new con();
        $x->connect();
        $retval = "select distinct(Id) from testgroupmaster";
        $sql1 = mysql_query($retval) or die (mysql_error());
        while($res=mysql_fetch_array($sql1, MYSQL_BOTH))
        {
            ?> 
            <option value="<?=$res['Id'];?>"><?=$res['Id'];?></option>
            <?
        }
    ?>
</select>


<input type="text" name="testgroupname" id="zipsearch" class="zipsearch" value="<?php echo $testgroupname; ?> ">
html

您的php代码在这里是错误的

<option value="<?=$res['Id'];?>"><?=`$res['Id']`;?></option>
改为

<option value="<?=$res['Id'];?>"><?=$res['GROUP_NAME'];?></option>

好的,谢谢。我会试试这个。它工作得很好,但我在文本框中得到的是id值,而不是测试组名称@那么您希望testgroupname值根据所选的id来确定,不是吗?然后必须使用jQuery.post传递该值,然后必须使用$\u post获取该值,然后将其传递给jQuery'.zipsearch'.valtest;我不太喜欢jquery。你能帮忙吗@Tornadok谢谢,我尝试了一下:并让你知道结果:@TornadTest group name没有填充,而是它的id值在文本框@Arun Killucheck你的代码中,给值和文本相同有什么意义..在选项中,原因是,我使用此选项值在编辑函数的文本框中获取@Arun Killuyou可以从选项值中获取id,因为不需要在值和文本中给它两次。文本和值都是相同的
<option value="<?=$res['Id'];?>"><?=`$res['Id']`;?></option>
<option value="<?=$res['Id'];?>"><?=$res['GROUP_NAME'];?></option>
<?php
// Assume $db is a PDO object

$dbh = new PDO('mysql:host=localhost;dbname=populatedropdown', "root", "");

$query = $dbh->query("select * from position"); // Run your query

echo '<form action="populate.php" method="get" name="send3">';
echo '<select name="populate">'; // Open your drop down box



// Loop through the query results, outputing the options one by one
while ($row = $query->fetch(PDO::FETCH_ASSOC)) {
   echo '<option value="'.$row['name'].'">'.$row['name'].'</option>';
}

echo '</select>';// Close your drop down box

echo '</form>';

?>

<script language="JavaScript">
         function send_input1(){            
          document.send1.input4.value = document.send3.populate.value;
          }
</script>

<form name="send1" action=javascript:send_input1()>
<p><input type=submit value=Enter>
</p><input size=30 name="input4">
</form>