我有一个从数据库中回显列(jobTitle)的选择,在更改时我试图在另一个 html 选择中显示,选择另一个列(company_name),但只有与第一个 html 选择相关的值。
我没有收到错误。正在传递第一个 html 选择值,但由于某种原因,它没有根据第二个选择中的值从数据库中进行选择。
我认为问题出在我的第二个 sql 查询上。
P.S 如果有人知道更有效的方法,我将不胜感激。
PHP 和 HTML:
<select name="jobtitle_select" class="jobtitle_select">
<option class="" name="" value="" >-- Job title --</option>
<?php
$sql = $dbh->prepare("SELECT * FROM jobs_list");
if($sql->execute()) {
$sql->setFetchMode(PDO::FETCH_ASSOC);
}
while($row = $sql->fetch()) {
$jobTitle = $row['jobTitle'];
echo "<option class='' name='' value='$jobTitle' > $jobTitle </option>";
} // end of while // ?>
</select>
<?php
$jobtitle_select = $_POST['jobtitle_select'];
if ($jobtitle_select){
$sql = $dbh->prepare("SELECT * FROM jobs_list WHERE company_name = :jobtitle_select");
$sql->bindParam(':jobtitle_select', $jobtitle_select, PDO::PARAM_STR);
if($sql->execute()) {
$sql->setFetchMode(PDO::FETCH_ASSOC);
}
?>
<select class="company_name_select" >
<option class="" name="" value="" >-- Company name --</option>
<?php while($row = $sql->fetch()) {
$company_name = $row['company_name'];
echo "<option class='' name='' value='$company_name'> $company_name </option>";
} // end of while //
}?> <!-- end of if -->
</select>
JQUERY:
$('.jobtitle_select').change(function(){
$.ajax({
//create an ajax request to load_page.php
type: "POST",
data:$('.jobtitle_select'),
dataType: "html", //expect html to be returned
success: function(date){
$('.company_name_select').html(date);
}
})
});
最佳答案
您的 ajax 调用不正确,或者最好说不完整。您需要提供 url 以及带有名称和值的已发布变量。
$('.jobtitle_select').change(function(){
$.ajax({
//create an ajax request to load_page.php
url: "load_page.php",
type: "POST",
data: {jobtitle_select: $('.jobtitle_select').val()},
dataType: "html", //expect html to be returned
success: function(date){
$('.company_name_select').html(date);
}
})
});
并且您的 load_page.php 文件应该包含从数据库读取数据的 php 代码和仅显示选择的内部的 html 代码:
<?php
$jobtitle_select = $_POST['jobtitle_select'];
if ($jobtitle_select){
$sql = $dbh->prepare("SELECT * FROM jobs_list WHERE company_name = :jobtitle_select");
$sql->bindParam(':jobtitle_select', $jobtitle_select, PDO::PARAM_STR);
if($sql->execute()) {
$sql->setFetchMode(PDO::FETCH_ASSOC);
}
?>
<option class="" name="" value="" >-- Company name --</option>
<?php while($row = $sql->fetch()) {
$company_name = $row['company_name'];
echo "<option class='' name='' value='$company_name'> $company_name </option>";
} // end of while //
}?> <!-- end of if -->
关于php - MYSQL Select 基于 HTML 选择选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41628722/