繁体   English   中英

PHP从下拉列表中填充文本框

[英]PHP Populate Text Box from DropDown Selection

用户尝试在下拉菜单中进行选择后,我尝试填充两个文本字段。 下面的代码有效,但显然是该功能中的手动操作。 我需要form.accounts和form.client的值来自选择框正在使用的查询。 有任何想法吗。 这应该是jQuery-并不是很熟悉。

<?php                          
$db = new mysqli("127.0.0.1", "root", "", "centrum");

$sql = "SELECT
accounts_client_accounts.accounts_client_account_id,
accounts_client_accounts.accounts,
accounts_client.client
FROM
accounts_client_accounts
INNER JOIN accounts_client ON accounts_client_accounts.accounts_client_id =      accounts_client.accounts_client_id
ORDER BY accounts_client_account_id
";

if(!$result = $db->query($sql)){
die('There was an error running the query [' . $db->error . ']');
}?>

<form class="form-ui">
<span class="form-elements reqField">
  <select class="dropdown" onchange="populateData(this)">
   <option value="0">Choose Account</option>
 <?php while($row = $result->fetch_assoc()){ 

  echo "<option value='". $row['accounts_client_account_id']."'>".$row['accounts'];
  }
  ?>
  </select>
</span>
<span class="form-elements">
  <input name="accounts" type="text" class="text" value="" />
</span>

<span class="form-elements reqField">
  <input name="client" type="text" class="text" value="" />
</span>
</form>
<script>
function populateData(sel){
    var form = sel.form,
        value = sel.options[sel.selectedIndex].value;
    switch(value){
        case '1':
            form.accounts.value = 'Account1';
            form.client.value = 'Client1';
        break;
        case '2':
            form.accounts.value = 'Account2';
            form.client.value = 'Client2';
        break;
        case '3':
         form.accounts.value = 'Account3';
            form.client.value = 'Client3';
        break;
        default:
    }
}
</script>

您可以将数据属性用于下拉选项,并使用它们填充字段的值。 这是代码:

<form class="form-ui">
<span class="form-elements reqField">
  <select class="dropdown" onchange="populateData(this)">
   <option value="0">Choose Account</option>
 <?php while($row = $result->fetch_assoc()){ 

  echo "<option data-account=".$row['accounts']." data-client=".$row['client']." value='". $row['accounts_client_account_id']."'>".$row['accounts'];
  }
  ?>
  </select>
</span>
<span class="form-elements">
  <input name="accounts" type="text" class="text" value="" />
</span>

<span class="form-elements reqField">
  <input name="client" type="text" class="text" value="" />
</span>
</form>
<script>
function populateData(sel){
    var account = $(this).find(':selected').data('account'),
        client = $(this).find(':selected').data('client');

        form.accounts.value = account;
        form.client.value = client;
    }
}
</script>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM