gpt4 book ai didi

php - 需要使用 php 和 ajax 在另一个下拉菜单的基础上显示下拉菜单

转载 作者:行者123 更新时间:2023-11-29 23:19:43 25 4
gpt4 key购买 nike

我正在使用 PHP、mysql 和 ajax。我有一个名为 Billing.php 的 php 文件,其中有 2 个下拉列表,一个名为 Company,另一个名为 Model Name

我可以使用 SQL 查询在两个下拉列表中显示所有公司名称和型号名称。

但现在它会获取两个下拉列表中可用的所有数据。我担心的是,我想选择一个公司名称,第二个下拉列表应根据公司过滤型号名称。

在网上寻找一些解决方案后,我知道我们可以使用 ajax 来实现这一点,但我不知道我的代码中缺少什么。它也给了我错误

Notice: Undefined index: ajaxcompanyname in C:\Users\Shesharm\MyWebsite\Billing.php

其中ajaxcompanyname是从ajax函数传递到php文件的数据,我用它来获取模型名称下拉列表的查询结果。

计费.PHP

<!DOCTYPE html>
<html>

<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<style>


table,th,td{
border: 1px solid black;
border-collapse: collapse;
text-align: left;
table-layout: auto;
background-color: #CCCCCC;
}
</style>

<script type="text/javascript" src="Billing_Selection.js"></script>
</head>

<body>


<?php
//Define variables
$company=$ModelName=$ModelNo=$productcolor=$cost=$sql1=$sql2=$IMEI=$accessories=$row=$quantity=$customername=$customerinfo=$prodstatus="";
$quantityerr=$q="";

?>


<form name="SearchMobile" method="POST" action="<?php $_SERVER['PHP_SELF'];?>" style="background-color:#FF6600;">
<fieldset>
<legend><b>Search the Required mobile</b> </legend>
<?php
// Connect to database and get the no of rows in $num
$con = mysqli_connect("MyWebsite.localdomain","root","shekhar123","test_youtube");
$sql1 = "select DISTINCT CompanyName from mobile_data";

//check connection
if(!$con){
echo "Failed to connect to MySQL: " . mysql_error();
}


$retval1 = mysqli_query($con,$sql1);

echo "<select name='companyname' onchange='companysortlist(this.value)'>";
echo "<option value=''>Select a Mobile:</option>";
while($row = mysqli_fetch_array($retval1)){
echo "<option value='".$row['CompanyName']."'>".$row['CompanyName']."</option>";
}
echo "</select>"."&nbsp; ";


//******************* Select the model name..
$sql2 = "select DISTINCT ModelName from mobile_data where CompanyName='".$_POST['ajaxcompanyname']."'";
//check connection
if(!$con){
echo "Failed to connect to MySQL: " . mysql_error();
}

echo "<select name='modelname' class='companymodelname'>";
echo "<option value=''>Select a Model Name:</option>";

$retval1 = mysqli_query($con,$sql2);
while($row = mysqli_fetch_array($retval1)){
echo "<option value='".$row['ModelName']."'>".$row['ModelName']."</option>";
}
echo "</select>"."&nbsp; ";



mysqli_close($con);
?>
</fieldset>
</form>
<br>




</body>

</html>

Billing_Selection.js

function companysortlist(data){

$.ajax({

type:'POST',
url:'Billing.php',
data:"ajaxcompanyname="+data,
success:function(data){
$('.companymodelname').html(data);
}
}

)

}

请让我知道我做错了什么。我在所有这些方面都是初学者。

最佳答案

简化答案:

为了保持简短,我省略了一些数据库检查等。

账单.php

 <?php
$con = mysqli_connect("MyWebsite.localdomain","root","shekhar123","test_youtube");
$sql = "select DISTINCT CompanyName from mobile_data";
$retval = mysqli_query($con,$sql);
?>

<form method="POST">
<select name="companyname" onchange="companysortlist(this.value)">
<option value=''>Select a Mobile:</option>
<?php
while($row = mysqli_fetch_array($retval)){
echo "<option value='".$row['CompanyName']."'>".$row['CompanyName']."</option>";
}
?>
</select>

<select name="modelname" class="companymodelname">
<!-- note the select is completely empty, it will be fill by ajax -->
</select>
</form>

<script>
function companysortlist(data){
$.ajax({
type: 'POST',
url: 'ajax.php',
data: "ajaxcompanyname=" + data,
success: function (data) {
$('.companymodelname').html(data);
}
});
}
</script>

ajax.php

<?php
$con = mysqli_connect("MyWebsite.localdomain","root","shekhar123","test_youtube");
$sql = "select DISTINCT ModelName from mobile_data where CompanyName='".$_POST['ajaxcompanyname']."'";
$retval = mysqli_query($con,$sql);


while($row = mysqli_fetch_array($retval)){
echo "<option value='".$row['ModelName']."'>".$row['ModelName']."</option>";
}
?>

请注意

我仍然没有修复您代码中的任何 sql 注入(inject)漏洞

关于php - 需要使用 php 和 ajax 在另一个下拉菜单的基础上显示下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27431494/

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