首页 > 解决方案 > 过滤后变量未定义(ajax/jquery)

问题描述

让我看看我能不能解释发生了什么……

所以我有一个 PHP 页面,其中显示了特定搜索的结果。在这个页面中,我有选择框(这个特定的是静态的)来过滤我的结果,在这种情况下,特别是按地区。这个 region_id 值正在通过 Ajax/Jquery 传递。

$("#region").change(function(){
  var region_id = $(this).val();
  console.log(region_id);
  $.ajax({

      url:"results2.php",
      method:"POST",
      data: {region_id:region_id},
      success: function(data){         
        $("#filter_results").html(data);
      }
  });
})

这个 PHP 页面“results2”还通过 HTML GET 2 属性(recipeid 和 recipename)接收。一种用于SQL查询,另一种纯粹用于动态显示。一切运行顺利,但每当我开始应用过滤器“recipeid”和“recipename”时,就会出现此消息:

注意:未定义索引:recipid in... 注意:未定义索引:recipename 在...

然而,过滤器被正确应用,但结果是错误的,因为这两个变量没有被考虑在内。

这是我的 PHP 中显示结果的部分(包括 sql 查询)...

<?php
$recipeid = $_GET["recipeid"];
$recipename = $_GET["recipename"];
$servername = "localhost";
$username = "root";
$password = "";
$db = "motherwine";


    // Create connection
    $conn = new mysqli($servername, $username, $password, $db);
  $conn->set_charset("utf8");

    // Check connection
    if ($conn->connect_error) {
        die("Erro: " . $conn->connect_error);
    }

  //Display results with region filter ON
    if (isset($_POST["region_id"]))            {

          if($_POST["region_id"] !="")
          { $region_id = implode("", $_POST["region_id"]);         
            $sql="SELECT wineid, wine_name, winetype_name, wine_img, region_name, sponsored, recipe_name, recipeid, grade_name, nota
            FROM (SELECT wine.id AS wineid, wine_name, winetype_name, wine_img, region_name, sponsored, recipe_name, recipe.id AS recipeid, round(avg(grade_id),0) AS nota
            FROM wine, winetype, region, recipe, rating, pairing
            WHERE wine.id = pairing.wine_id AND wine.winetype_id = winetype.id AND wine.region_id = region.id AND
            recipe.id = pairing.recipe_id AND 
            rating.pairing_id = pairing.id and recipe.id LIKE '%$recipeid%' and wine.region_id LIKE '$region_id'
            GROUP BY wineid, wine_name, recipe_name) AS temp, grade
            WHERE grade.id = temp.nota ORDER BY sponsored DESC, nota DESC;";
            $result = $conn->query($sql);


            echo '<div class="container">
      <div class="row justify-content-start text-left mb-2">
        <div class="col-md-9" data-aos="fade">
          <h2 class="font-weight-bold text-black">Para acompanhar "'.$recipename.'", a mãe sugere...</h2>
        </div>      
      </div>

      <div class="row justify-content-end text-right">
            <h6 class="pr-4 text-black">Ordenar por:</h6>
            <div class="single-element-widget">                        
                    <div class="default-select" id="default-select">
                        <select>
                        <option value="1">Avaliação: melhor</option>
                        <option value="1">Avaliação: pior</option>
                        <option value="1">Preço: mais caro</option>
                        <option value="1">Preço: mais barato</option>                            
                        </select>
                    </div>
                </div>
      </div>
      <div class="row" data-aos="fade">';

如果没有足够的信息,请告诉我...

标签: phpjqueryajax

解决方案


推荐阅读