我有两个选项卡按钮--第一个是租金,第二个是买房. 如果用户点击租金选项卡,则会出现搜索栏.相同的字段可用于两者,但如果单击租金选项卡,则租金选项卡搜索栏处于活动状态,如果单击购买,则显示购买选项卡.

页面加载后的默认状态是购买选项卡处于活动状态,搜索栏,如果我单击购买租金选项卡,则所有数据字段都会根据我的代码提取,但如果我单击租金选项卡,则不会提取数据.

下面是点击购买标签搜索栏数据获取时的屏幕截图

enter image description here

和第二购买标签标签数据获取图像

enter image description here

并查看租金选项卡, Select

enter image description here

且未取二次租金标签数据

enter image description here here is the chrome debagging tool image if selecting rent

https://ibb.co/d72b28K

https://ibb.co/NFMpjj6

下面是这两个选项卡的html代码

<!-- Home Design -->
  <section class="home-one home1-overlay bg-home1">
    <div class="container">
      <div class="row posr">
        <div class="col-lg-12">
          <div class="home_content home1 custom_width">
            <div class="home-text text-center">
              <p class="fz18 color-white">It's great to be Property!</p>
              <h2 class="fz50">Find Your Perfect Property</h2>
            </div>
            <div class="home_tabs">
              <ul class="nav justify-content-center nav-tabs" id="myTab2" role="tablist">
                <li class="nav-item" role="presentation">
                  <a class="nav-link active" id="buy-tab" data-toggle="tab" href="#buy" role="tab" aria-controls="buy" aria-selected="true">Buy</a>
                </li>
                <li class="nav-item" role="presentation">
                  <a class="nav-link" id="rent-tab" data-toggle="tab" href="#rent" role="tab" aria-controls="rent" aria-selected="false">Rent</a>
                </li>
              </ul>
              <!-- test -->
              
              <!-- test -->
              <div class="tab-content" id="myTabContent2">
                <div class="tab-pane fade show active" id="buy" role="tabpanel" aria-labelledby="buy-tab">
                  <div class="home_adv_srch_opt">
                    <div class="wrapper">
                      <div class="home_adv_srch_form">
                        <form method="POST" action="a_t_listing.php" class="bgc-white p20" id="searchform" name="searchform">
                          <div class="form-row align-items-center">
                            <div class="col-auto home_form_input mb15-md">
                              <div class="form-group style2 mb-2 pl10 pl0-lg">
                                <label>TYPE</label>
                                <div class="select-wrap style2-dropdown">
                                  <select class="selectpicker show-tick" name="property_type" id="property_type" >
                                    <option value="Residential">Residential</option>
                                    <option value="Commercial">Commercial</option>
                                 
                                  </select>
                                </div>
                              </div>
                            </div>
                            <div class="col-auto home_form_input mb15-md">
                              <div class="form-group style2 mb-2 pl10 pl0-lg">
                                <label>LOCATION</label>
                                <div class="select-wrap style2-dropdown">
                                  <select class="selectpicker" name="Locality" id="Locality" data-live-search="true">
                                  <!-- <option value="">All Cities / Areas</option> -->
                                  <!-- Data Load By Ajax Best Code Attache footer file -->
                                  </select>
                                </div>
                              </div>
                            </div>
                            <div class="col-auto home_form_input mb15-md" style="">
                              <div class="form-group style1 mb-2 ml0-767">
                                <label id="search-lable">SEARCH</label>
                                <div class="select-wrap style1-dropdown">
                                  <!-- <select name="searchQuery" class="form-control js-searchBox" id="searchQuery">
                                    <option value="">Endorse Property</option>
                                    <option value="TheBliss">The Bliss</option>
                                    <option value="CasaVyoma">Casa Vyoma</option>
                                    <option value="WorldTradeTower">World Trade Tower</option>
                                    <option value="Hotels">View All Results</option>
                                  </select> -->
                                  <input class="form-control" type="text" name="searchQuery" id="searchQuery" placeholder="Enter Locality / Project / Society / Landmark" autocomplete="off">
                                  <div id="suggestionContainer"></div>
                                </div>
                              </div>
                            </div>
                            <div class="col-auto home_form_adv_srch_form_btn mb20-md">
                              <div class="adv_srch_btn dropbtn ml0-767" data-toggle="modal" data-target="#staticBackdrop" id="advance_search_mo">
                                <i class="flaticon-setting-lines mr10 mt10 mt0-md flr-520"></i>
                                <span id="advance-search">Advanced Search</span>
                              </div>
                            </div>
                            <div class="col-auto home_form_input2" id="home_form_input2">
                               <input type="hidden" name="tab" id="selectedTab" value="buy">
                              <button type="submit" class="btn search-btn ml0-767" id="search-btn"><span class="fa fa-search"></span> Search</button>
                            </div>
                          </div>
    
                        </form>
                      </div>
                    </div>
                  </div>
                </div>
                <div class="tab-pane fade" id="rent" role="tabpanel" aria-labelledby="rent-tab">
                  <div class="home_adv_srch_opt">
                    <div class="wrapper">
                      <div class="home_adv_srch_form">
                        <form method="POST" action="a_t_listing.php" class="bgc-white p20" id="rent-form" name="searchform" >
                          <div class="form-row align-items-center">
                            <div class="col-auto home_form_input mb15-md">
                              <div class="form-group style2 mb-2 pl10 pl0-lg">
                                <label>TYPE</label>
                                <div class="select-wrap style2-dropdown">
                                  <select class="selectpicker show-tick" name="property_type" id="property_type" >
                                    <option value="Residentail">Residentail</option>
                                    <option value="Commercial">Commercial</option>
                                      
                                  </select>
                                </div>
                              </div>
                            </div>
                            <div class="col-auto home_form_input mb15-md">
                              <div class="form-group style2 mb-2 pl10 pl0-lg">
                                <label>LOCATION</label>
                                <div class="select-wrap style2-dropdown">
                                  <select class="selectpicker" name="Locality" id="Locality" data-live-search="true">
                                  <option value="">All Cities / Areas</option>
                                  <!-- Data Load By Ajax Best Code Attache footer file -->
                                  </select>
                                </div>
                              </div>
                            </div>
                            <div class="col-auto home_form_input mb15-md">
                              <div class="form-group style1 mb-2 ml0-767">
                                <label>SEARCH</label>
                                <div class="select-wrap style2-dropdown">
                                  <!-- <select name="lang" class="form-control js-searchBox">
                                    <option value="">Endorse Property</option>
                                    <option value="sankalpgrace2">Sankalp Grace 2</option>
                                    <option value="StratumVenus">Stratum Venus</option>
                                    <option value="Indraparasth6">Indraparasth 6</option>
                                    <option value="Hotels">View All Results</option>
                                  </select> -->
                                  <input class="form-control" type="text" name="searchQuery" id="searchQuery" placeholder="Enter Locality / Project / Society / Landmark" autocomplete="off">
                                  <div id="suggestionContainer"></div>
                                </div>
                              </div>
                            </div>
                            <div class="col-auto home_form_adv_srch_form_btn mb20-md">
                              <div class="adv_srch_btn dropbtn ml0-767" data-toggle="modal" data-target="#staticBackdrop">
                                <i class="flaticon-setting-lines mr10 mt10 mt0-md flr-520"></i>
                                <span id="advance-search">Advanced Search</span>
                              </div>
                            </div>
                            <div class="col-auto home_form_input2">
                              <!-- Add a hidden input field to store the selected tab -->
                               <input type="hidden" name="tab" id="selectedTab" value="rent">
                              <button type="submit" class="btn search-btn ml0-767"><span class="fa fa-search"></span> Search</button>
                            </div>
                          </div>
                        </form>
                      </div>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </section>
  

下面是这两个选项卡的My javacsript代码

<script>
$(document).ready(function() {
    // Load default value on page load
    updateDropdowns();

    $('#property_type').on('change', function() {
        updateDropdowns();
    });

    $('#myTab2 a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
        updateDropdowns();
    });

    function updateDropdowns() {
        var propertyType = $('#property_type').val();
        var selectedTab = $('.tab-content .tab-pane.active').attr("id");

        // Determine the URL for AJAX request based on selected tab
        var ajaxUrl = './conn/are_fetch_data.php';
        var ajaxData = { propertyType: propertyType, tab: selectedTab };

        if (selectedTab === 'rent') {
            // Additional logic if needed for the "rent" tab
            // ajaxUrl = ...
            // ajaxData = ...
        }

        // Send AJAX request to fetch location options
        $.ajax({
            type: 'POST',
            url: ajaxUrl,
            data: ajaxData,
            success: function(data) {
                $('#Locality').html(data);
                $('#Locality').selectpicker('refresh'); // Reinitialize the second dropdown
            },
            error: function() {
                console.log('Error fetching location options');
            }
        });
    }
});

</script>

我担心的是,如果在买房选项卡中打开代码,代码运行得很好,但为什么它在租金选项卡中不起作用?为什么数据不能读取?开发人员工具中什么也没有发生.

以下是我的代码.fetch_data.php文件和一切正常工作,以及如果 Select 购买选项卡而不是工作租金选项卡,还会获取数据

  include 'new_conn.php';

// Retrieve selected property type from AJAX request
$propertyType = $_POST['propertyType'];

// Query the appropriate database table based on property type
if ($propertyType === 'Residential') {
    $tableName = 'residential';
    $columnName = 'R_Locality';
} else {
    $tableName = 'commercial';
    $columnName = 'C_Locality';
}

$query = "SELECT DISTINCT $columnName FROM $tableName";
$result = $conn->query($query);

// Build the options for the area/city dropdown
$options = "<option value=''>Select an Area/City</option>";
while ($row = $result->fetch_assoc()) {
    $options .= "<option value='" . $row[$columnName] . "'>" . $row[$columnName] . "</option>";
}

echo $options;

$conn->close();

推荐答案

EDIT:

首先,您有一个重复的DOM元素<select class="selectpicker" name="Locality" id="Locality" data-live-search="true">.

例如,将id更改为LocalityRent,并在成功响应中根据您所单击的选项卡(Rate或Buy选项卡)将数据打印到特定的DOM元素中.每次你点击,因为有一个重复的DOM元素具有相同的id,它不会工作,它不会打印来自你的PHP代码的响应.

您的DOM中有另一个具有重复id的元素,其值为<select class="selectpicker show-tick" name="property_type" id="property_type" >

我把property_type分别改成了property_type_rentproperty_type_buy.

每个select元素都必须拥有自己的唯一id,以便负责该操作的事件侦听器执行特定的操作.

在每种情况下,我都在select元素中添加了一个dataset.action,这样每次要更新每个DropDown时,都可以将字符串buyrent作为参数传递给您的AJAX请求.

UPDATED HTML CODE:

 <section class="home-one home1-overlay bg-home1">
    <div class="container">
      <div class="row posr">
        <div class="col-lg-12">
          <div class="home_content home1 custom_width">
            <div class="home-text text-center">
              <p class="fz18 color-white">It's great to be Property!</p>
              <h2 class="fz50">Find Your Perfect Property</h2>
            </div>
            <div class="home_tabs">
              <ul class="nav justify-content-center nav-tabs" id="myTab2" role="tablist">
                <li class="nav-item" role="presentation">
                 <!-- set a dataset.tabId for your button  --> 
                  <a class="nav-link active" id="buy-tab" data-toggle="tab" data-tabId="buy" href="#buy" role="tab" aria-controls="buy" aria-selected="true">Buy</a>
                </li>
                 
                <li class="nav-item" role="presentation">
                    <!-- set a dataset.tabId for your button  --> 
                  <a class="nav-link" id="rent-tab" data-toggle="tab" data-tabId="rent" href="#rent" role="tab" aria-controls="rent" aria-selected="false">Rent</a>
                </li>
              </ul>
              <!-- test -->
              
              <!-- test -->
              <div class="tab-content" id="myTabContent2">
                <div class="tab-pane fade show active" id="buy" role="tabpanel" aria-labelledby="buy-tab">
                  <div class="home_adv_srch_opt">
                    <div class="wrapper">
                      <div class="home_adv_srch_form">
                        <form method="POST" action="a_t_listing.php" class="bgc-white p20" id="searchform" name="searchform">
                          <div class="form-row align-items-center">
                            <div class="col-auto home_form_input mb15-md">
                              <div class="form-group style2 mb-2 pl10 pl0-lg">
                                <label>TYPE</label>
                                <div class="select-wrap style2-dropdown">
                                  <select class="selectpicker show-tick" name="property_type" id="property_type_buy" data-action="buy" >
                                    <option value="Residential">Residential</option>
                                    <option value="Commercial">Commercial</option>
                                 
                                  </select>
                                </div>
                              </div>
                            </div>
                            <div class="col-auto home_form_input mb15-md">
                              <div class="form-group style2 mb-2 pl10 pl0-lg">
                                <label>LOCATION</label>
                                <div class="select-wrap style2-dropdown">
                                  <select class="selectpicker" name="Locality" id="Locality" data-live-search="true">
                                  <!-- <option value="">All Cities / Areas</option> -->
                                  <!-- Data Load By Ajax Best Code Attache footer file -->
                                  </select>
                                </div>
                              </div>
                            </div>
                            <div class="col-auto home_form_input mb15-md" style="">
                              <div class="form-group style1 mb-2 ml0-767">
                                <label id="search-lable">SEARCH</label>
                                <div class="select-wrap style1-dropdown">
                                  <!-- <select name="searchQuery" class="form-control js-searchBox" id="searchQuery">
                                    <option value="">Endorse Property</option>
                                    <option value="TheBliss">The Bliss</option>
                                    <option value="CasaVyoma">Casa Vyoma</option>
                                    <option value="WorldTradeTower">World Trade Tower</option>
                                    <option value="Hotels">View All Results</option>
                                  </select> -->
                                  <input class="form-control" type="text" name="searchQuery" id="searchQuery" placeholder="Enter Locality / Project / Society / Landmark" autocomplete="off">
                                  <div id="suggestionContainer"></div>
                                </div>
                              </div>
                            </div>
                            <div class="col-auto home_form_adv_srch_form_btn mb20-md">
                              <div class="adv_srch_btn dropbtn ml0-767" data-toggle="modal" data-target="#staticBackdrop" id="advance_search_mo">
                                <i class="flaticon-setting-lines mr10 mt10 mt0-md flr-520"></i>
                                <span id="advance-search">Advanced Search</span>
                              </div>
                            </div>
                            <div class="col-auto home_form_input2" id="home_form_input2">
                               <input type="hidden" name="tab" id="selectedTab" value="buy">
                              <button type="submit" class="btn search-btn ml0-767" id="search-btn"><span class="fa fa-search"></span> Search</button>
                            </div>
                          </div>
    
                        </form>
                      </div>
                    </div>
                  </div>
                </div>
                <div class="tab-pane fade" id="rent" role="tabpanel" aria-labelledby="rent-tab">
                  <div class="home_adv_srch_opt">
                    <div class="wrapper">
                      <div class="home_adv_srch_form">
                        <form method="POST" action="a_t_listing.php" class="bgc-white p20" id="rent-form" name="searchform" >
                          <div class="form-row align-items-center">
                            <div class="col-auto home_form_input mb15-md">
                              <div class="form-group style2 mb-2 pl10 pl0-lg">
                                <label>TYPE</label>
                                <div class="select-wrap style2-dropdown">
                                  <select class="selectpicker show-tick" name="property_type" id="property_type_rent" data-action="rent" >
                                    <option value="Residentail">Residentail</option>
                                    <option value="Commercial">Commercial</option>
                                      
                                  </select>
                                </div>
                              </div>
                            </div>
                            <div class="col-auto home_form_input mb15-md">
                              <div class="form-group style2 mb-2 pl10 pl0-lg">
                                <label>LOCATION</label>
                                <div class="select-wrap style2-dropdown">
                                  <select class="selectpicker" name="Locality" id="LocalityRent" data-live-search="true">
                                  <option value="">All Cities / Areas</option>
                                  <!-- Data Load By Ajax Best Code Attache footer file -->
                                  </select>
                                </div>
                              </div>
                            </div>
                            <div class="col-auto home_form_input mb15-md">
                              <div class="form-group style1 mb-2 ml0-767">
                                <label>SEARCH</label>
                                <div class="select-wrap style2-dropdown">
                                  <!-- <select name="lang" class="form-control js-searchBox">
                                    <option value="">Endorse Property</option>
                                    <option value="sankalpgrace2">Sankalp Grace 2</option>
                                    <option value="StratumVenus">Stratum Venus</option>
                                    <option value="Indraparasth6">Indraparasth 6</option>
                                    <option value="Hotels">View All Results</option>
                                  </select> -->
                                  <input class="form-control" type="text" name="searchQuery" id="searchQuery" placeholder="Enter Locality / Project / Society / Landmark" autocomplete="off">
                                  <div id="suggestionContainer"></div>
                                </div>
                              </div>
                            </div>
                            <div class="col-auto home_form_adv_srch_form_btn mb20-md">
                              <div class="adv_srch_btn dropbtn ml0-767" data-toggle="modal" data-target="#staticBackdrop">
                                <i class="flaticon-setting-lines mr10 mt10 mt0-md flr-520"></i>
                                <span id="advance-search">Advanced Search</span>
                              </div>
                            </div>
                            <div class="col-auto home_form_input2">
                              <!-- Add a hidden input field to store the selected tab -->
                               <input type="hidden" name="tab" id="selectedTab" value="rent">
                              <button type="submit" class="btn search-btn ml0-767"><span class="fa fa-search"></span> Search</button>
                            </div>
                          </div>
                        </form>
                      </div>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </section>

    

   <script>
$(document).ready(function() {
// Load default value on page load, buy-tab is active
updateDropdowns("buy");

$('#property_type_rent').on('change', function(e) {
    updateDropdowns(e.target.dataset.action);
});

$('#property_type_buy').on('change', function(e) {
    updateDropdowns(e.target.dataset.action);
});


$('#myTab2 a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
    updateDropdowns(e.target.dataset.tabId);
});

function updateDropdowns(dataset) {
           var propertyType; 
           if (dataset === 'rent') {
                  propertyType = $('#property_type_rent').val();
              } else {
                 propertyType = $('#property_type_buy').val();
              }

        // Determine the URL for AJAX request based on selected tab
        var ajaxUrl = './conn/are_fetch_data.php';
        var ajaxData = { propertyType: propertyType, tab: dataset };


        // Send AJAX request to fetch location options
        $.ajax({
            type: 'POST',
            url: ajaxUrl,
            dataType: 'json',
            data: ajaxData
            success: function(data) {
              if (dataset === 'rent') {
                   $('#LocalityRent').html(data);
                   $('#LocalityRent').selectpicker('refresh'); 
              } else {
                   $('#Locality').html(data);
                   $('#Locality').selectpicker('refresh');  
   
              }
            },
            error: function() {
                console.log('Error fetching location options');
            }
        });
    }
});

Javascript相关问答推荐

使用Element.children在前后移动 node

Promise.all立即跳到那时,而不是调用所有Promise

v-textfield的规则找不到数据中声明的元素

Vue-Router渲染组件但不更改网址

橡皮擦完全让画布变成白色

类型脚本中只有字符串或数字键而不是符号键的对象

如何用显示网格平滑地将元素从一个地方移动到另一个地方?

无法访问Vue 3深度监视器中对象数组的特定对象值'

优化Google Sheet脚本以将下拉菜单和公式添加到多行

如何在coCos2d-x中更正此错误

使用Google API无法进行Web抓取

当使用';字母而不是与';var#39;一起使用时,访问窗口为什么返回未定义的?

如何在Node.js中排除导出的JS文件

如何在JAVASCRIPT中临时删除eventListener?

如何使用<;Link>;执行与JS Reaction中的";window.Location=/GameOverDied;";类似的操作?

如何找到带有特定文本和测试ID的div?

如何修复使用axios运行TSC index.ts时出现的错误?

如何更改Html元素S的 colored颜色 ,然后将其褪色为原始 colored颜色

Socket.IO在刷新页面时执行函数两次

如何让SVG图标在被点击和访问后改变 colored颜色 ,并在被访问后取消点击时恢复到原来的 colored颜色 ?