我需要澄清一下如何使用来自 mysql 的数据填充选择。基本上我想做的是:
将有一个包含一些数据的第一个选择框。
<select>
<option>1</option>
<option>2</option>
<option>3</option>
</select>
Run Code Online (Sandbox Code Playgroud)
当用户在第一个选择中选择一个选项时,下面还有第二个选择,它应该根据在第一个选择中所做的选择来反映值。
<select>
<option>1.1</option>
<option>1.2</option>
<option>1.3</option>
</select>
Run Code Online (Sandbox Code Playgroud)
数据来自 MySQL。我不确定是否需要发布到同一页面,但如果我这样做了,如何保留在之前的选择框中选择的值?我需要使用javascript吗?
有什么帮助吗?
谢谢。
您应该使用 javascript,这样您就不需要刷新页面。我只是重新阅读了您的问题,我将在一秒钟内提供一个涉及 AJAX 请求以提取动态数据的解决方案:
HTML
<select name="select1" id="select1">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<select name="select2" id="select2">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
Run Code Online (Sandbox Code Playgroud)
jQuery
<script type="text/javascript">
$(document).ready(function() {
$('#select1').change(getDropdownOptions);
});
function getDropdownOptions() {
var val = $(this).val();
// fire a POST request to populate.php
$.post('populate.php', { value : val }, populateDropdown, 'html');
}
function populateDropdown(data) {
if (data != 'error') {
$('#select2').html(data);
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
填充.php
<?php
if (!empty($_POST['value'])) {
// query for options based on value
$sql = 'SELECT * FROM table WHERE value = ' . mysql_real_escape_string($_POST['value']);
// iterate over your results and create HTML output here
....
// return HTML option output
$html = '<option value="1">1</option>';
$html .= '<option value="b">B</option';
die($html);
}
die('error');
?>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5369 次 |
| 最近记录: |