PHP中相互依赖的2个下拉列表包括.只需要重新加载包含文件,而不是整个页面

2 dropdown lists dependent on each other in php include. Need to reload only the include file not the entire page

本文关键字:文件 包含 加载 新加载 依赖 2个 下拉列表 包括 PHP      更新时间:2023-09-26

我有2个简单的下拉列表一个依赖于另一个在php包含。

当选择一个时,它刷新页面,然后用正确的数据填充第二个,(效果很好)。

问题是它刷新整个页面,而不仅仅是包含文件。

是否有一种方法可以刷新包含?我在这里和其他网站上看过许多其他例子(Ajax, Javascript等),似乎无法让它工作。

提前向任何可以为我指出正确方向的人表示衷心的感谢。

<form enctype="multipart/form-data" action="advanced_search2.php" method="POST">
<?php require 'config.php'; ?>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<?
echo '<div id="publication">';
echo "<select name='cat'><option value=''>Select one</option>";
$quer2="SELECT DISTINCT id,publication FROM publication WHERE appear = 'Yes' and Search = 'Yes'"; 
foreach ($dbo->query($quer2) as $noticia2) {
echo "<option selected value='$noticia2[publication]'>$noticia2[publication]</option>"." <BR>";
}
echo "</select>";
echo '</div>';
?>

<?
echo '<div id="section">';
echo "<select name='subcat'><option value=''>Select one</option>";
$quer="SELECT DISTINCT section FROM sandbox WHERE publication = '$cat' AND appear = 'Yes'";
foreach ($dbo->query($quer) as $noticia) {
echo  "<option value='$noticia[section]'>$noticia[section]</option>";
}
echo "</select>";
echo '</div>';
?>
<form>
 <script>
 $('#publication').change(function(){
   var page = $( this ).attr('data-page');
    $.ajax({
    type:'POST',
    url:page,
    success: function(response){
        $('#section').html(response);
    }
  });
})
</script>
  1. 用div
  2. 包裹第二个选择框
  3. 在你的js函数'reload'中,调用ajax(另一个页面),在那里你传递catid并在该页面中响应第二个选择框
  4. 用ajax响应更新你的div html。

你的主页可以像这样

  <?php require 'config.php'; ?>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <?
    echo '<div id="publication">';
    echo "<select name='cat'><option value=''>Select one</option>";
    $quer2="SELECT DISTINCT id,publication FROM publication WHERE appear = 'Yes' and Search = 'Yes'"; 
    foreach ($dbo->query($quer2) as $noticia2) {
    echo "<option selected value='$noticia2[publication]'>$noticia2[publication]</option>"." <BR>";
    }
    echo "</select>";
    echo '</div>';
    ?>
    <div id="section"></div>
<script>
 $('#publication').change(function(){
$('#section').load('subcat.php?cat='+$(this).val());
  });
})
</script>

另一个页面获取subcat (subcat。php)

    <?php
       require 'config.php';
$cat = $_GET['cat'];
    echo "<select name='subcat'><option value=''>Select one</option>";
    $quer="SELECT DISTINCT section FROM sandbox WHERE publication = '$cat' AND appear = 'Yes'";
    foreach ($dbo->query($quer) as $noticia) {
    echo  "<option value='$noticia[section]'>$noticia[section]</option>";
    }
    echo "</select>";

?>