gpt4 book ai didi

PHP MYSQL动态选择框

转载 作者:行者123 更新时间:2023-11-29 04:08:27 26 4
gpt4 key购买 nike

我正在尝试创建一个搜索框,其中从“box1”中选择的选项填充“box​​2”可用的选项。这两个框的选项都来 self 的 MYSQL 数据库。我的问题是我不知道如何在不刷新页面的情况下根据第一个查询执行查询,这会很乏味和烦人。

HTML/PHP

<form role="form" action="search.php" method="GET">
<div class="col-md-3">
<select class="form-control">
<?php
$result = mysqli_query($con,"SELECT `name` FROM school");
while($row = mysqli_fetch_array($result)) {
echo '<option name="'.$row['name'].'">'.$row['name'].' School</option>';
}

?>
</select>
</div>
<div class="col-md-3">
<select class="form-control">
<?php
$result = mysqli_query($con,"SELECT * FROM products");
while($row = mysqli_fetch_array($result)) {
echo '<option name="'.$row['product'].'">'.$row['product'].'</option>';
}
mysqli_close($con);
?>
</select>
</div>
<button type="submit" class="btn btn-info">Search</button>
</form>

我认为查询应该是这样的。 AJAX 可能是这个问题的解决方案,但我不确定如何使用 AJAX 在不刷新的情况下执行此查询。

SELECT `product` FROM products WHERE `school` = [SCHOOL NAME FROM BOX 1]

提前致谢!

最佳答案

首先使用上面提到的 php 创建 no1 选择菜单。然后向其添加一个“更改”事件监听器,例如:

$('#select1').change(createSelect2);

function createSelect2(){
var option = $(this).find(':selected').val(),
dataString = "option="+option;
if(option != '')
{
$.ajax({
type : 'GET',
url : 'http://www.mitilini-trans.gr/demo/test.php',
data : dataString,
dataType : 'JSON',
cache: false,
success : function(data) {
var output = '<option value="">Select Sth</option>';

$.each(data.data, function(i,s){
var newOption = s;

output += '<option value="' + newOption + '">' + newOption + '</option>';
});

$('#select2').empty().append(output);
},
error: function(){
console.log("Ajax failed");
}
});
}
else
{
console.log("You have to select at least sth");
}
}

现在 no2 select 菜单根据 select 1 selected 选项有了新的选项。

和 php 文件:

<?php
header('Content-Type: application/json; charset=utf-8');
header('Access-Control-Allow-Origin: *');

if(isset($_GET['option']))
{
$option = $_GET['option'];

if($option == 1)
{
$data = array('Arsenal', 'Chelsea', 'Liverpool');
}
if($option == 2)
{
$data = array('Bayern', 'Dortmund', 'Gladbach');
}
if($option == 3)
{
$data = array('Aek', 'Panathinaikos', 'Olympiakos');
}

$reply = array('data' => $data, 'error' => false);
}
else
{
$reply = array('error' => true);
}

$json = json_encode($reply);
echo $json;
?>

当然,我使用了一些演示数据,但您可以使用 sql 查询填充那里的 $data 数组,并将它们作为带有正确 header 的 json 发送。最后为第二个选择菜单使用更多的 js:

$('#select2').change(selectSelect2);

function selectSelect2(){
var option = $(this).find(':selected').val();
if(option != '')
{
alert("You selected: "+option);
}
else
{
alert("You have to select at least sth");
}
}

在这里查看 http://jsfiddle.net/g3Yqq/2/一个工作示例

关于PHP MYSQL动态选择框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20857764/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com