1

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

7 回答 7

0

为此,您需要 JavaScript。使用 jQuery(或您最喜欢的库)并将事件侦听器绑定到组合框。

jQuery 示例:

$("#myCombo").change(function(e){
    $("myTextField").val( $("#myCombo").val() );
});
于 2012-10-03T10:15:45.400 回答
0

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

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

在下拉框上发生更改事件时,此函数将触发,并相应地设置 zipsearch-input。

于 2012-10-03T10:16:09.853 回答
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>
于 2012-10-03T10:29:45.067 回答
0

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

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

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

于 2012-10-03T10:16:52.350 回答
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; ?> ">
于 2012-10-03T10:18:47.437 回答
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;'> 
于 2012-10-03T10:14:56.573 回答
0
<?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>
于 2017-03-04T21:02:34.910 回答