【问题标题】:PHP MySQL Ajax Dependent dropdown list - how to get $_POST value in ajaxPHP MySQL Ajax Dependent 下拉列表 - 如何在 ajax 中获取 $_POST 值
【发布时间】:2015-01-27 05:22:14
【问题描述】:

目前我的依赖列表正在处理$_GET 请求。我正在尝试在 Ajax 中将 $_GET 请求转换为 $_POST 而无需重新加载表单。在头上我放了@$cat=$_GET['cat']; 我希望它像$_POST 和下面的ajax 脚本正在处理self.location 这意味着它从$_GET url 获取值。我希望下面的脚本像$_POST 一样工作,并且无需重新加载表单。任何帮助将不胜感激。

我在顶部的全局声明如下

@$cat=$_GET['cat'];

我的sql查询如下

<?php
# category and sub-category
$quer2="SELECT DISTINCT name,id FROM tblproductgroups order by name";
if(isset($cat) and strlen($cat) > 0){
$quer="SELECT DISTINCT sub_group_name,id FROM tblproductsubgroups where group_id=$cat order by sub_group_name"; 
}else{$quer="SELECT DISTINCT sub_group_name,id FROM tblproductsubgroups order by sub_group_name"; } 
?>

我的 ajax 脚本如下

<SCRIPT language=JavaScript>
function reload(form)
{
var val=form.cat.options[form.cat.options.selectedIndex].value;
self.location='product-add.php?cat=' + val ;

}
function disableselect()
{
<?Php
if(isset($cat) and strlen($cat) > 0){
echo "document.myForm.subcat.disabled = false;";}
else{echo "document.myForm.subcat.disabled = true;";}
?>
}
</script>

我的依赖下拉列表如下

<?php
echo "<select name='cat' onchange=\"reload(this.form)\"><option value=''>Select one</option>";
$sql = mysqli_query($customCon, $quer2);

while ($row = mysqli_fetch_array($sql)) {
       if($row['id']==@$cat){echo "<option selected value='$row[id]'>$row[name]</option>"."<BR>";}
              else{echo  "<option value='$row[id]'>$row[name]</option>";}
}
echo "</select>";

echo "<select name='subcat'><option value=''>Select one</option>";

$sql2 = mysqli_query($customCon, $quer);
while ($row2 = mysqli_fetch_array($sql2)) {
       echo  "<option value='$row2[id]'>$row2[sub_group_name]</option>";
}
echo "</select>";

?>

【问题讨论】:

  • 您的 AJAX 脚本未使用 AJAX。您需要使用XMLHttpRequest
  • @Barmar 你能告诉我如何使用 XMLHttpRequest 吗?
  • 网络上有数百个教程,所以我不会浪费我的时间。
  • @Barmar 我在这里寻求帮助。如果网络上有数百个教程而不是您在 stackoverflow 上浪费时间的原因,那么您在这里是为了帮助或告诉初学者上网浏览教程。
  • 我们在这里帮助您修复代码,而不是为您编写代码。您应该学习基础知识,然后尝试编写代码。如果您无法正常工作,我们很乐意帮助您解决问题。

标签: javascript php mysql ajax


【解决方案1】:

使用 jQuery(有关安装说明,请参见他们的网站)并向您的选择项添加更改事件处理程序。还要在您的 HTML 代码中添加一个容器 div 来保存动态加载的内容,例如:

 <div id="myCatContainer"></div>

在事件处理程序中执行:

$('#myCatContainer').load('product-add.php?cat=' . $('#mySelect').val();

在尝试上述代码之前,请务必阅读有关 jQuery 以及如何定义事件处理程序的内容!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-17
    • 2018-05-22
    • 1970-01-01
    • 2015-05-18
    • 2013-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多