PHP中的SQL下拉列表值

时间:2012-10-03 10:03:40

标签: php javascript

我想在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>

7 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

你需要JavaScript。使用jQuery(或您喜欢的库)并将事件监听器绑定到组合框。

jQuery示例:

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

答案 2 :(得分:0)

我有一个涉及jQuery的建议。我不知道你是否使用这个库,但无论如何我都在发帖:)

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

在dropbown框上的change事件中,此函数将触发,并相应地设置zipsearch-input。

答案 3 :(得分:0)

我不确定$ testgroupname来自哪里但我认为你想在下拉列表中选择该值。如果您没有客户端上的可用值,则必须以某种方式从服务器检索它。

您无法使用PHP填充文本框,因为在下拉列表中选择了选项后您不发送帖子。关于如何解决这个问题有很多选择。我个人会使用Ajax填充文本框而不发布到服务器。

开始的好地方: http://buffernow.com/2012/08/cascading-dropdown-ajax/

答案 4 :(得分:0)

试试这个

<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; ?> ">

答案 5 :(得分:0)

HTML

  <select id="testgroupid" name="testgroupid" 
style="column-width:35" onChange=filltext();>

的javascript

function filltext()
{
 var e = document.getElementById("testgroupid");
 var group = e.options[e.selectedIndex].text;
document.getElementById("zipsearch").value= group ;



}

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

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

更改为

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

答案 6 :(得分:0)

String userId = Preferences.get(AllUrls.userIdPreference, null);
if (userId == null) {
    new Login(theme).show();
} else {
    new Home(theme).show();
}