AJAX表单数据未通过

时间:2019-03-12 11:58:42

标签: php jquery ajax

我的数据“类别”不是通过我的AJAX请求获得的。

我遵循了2017年的教程,我猜测可能是我的语法已经过时或类似。

这是我的AJAX的摘要。 我输出了一些类别,用户可以单击。

 echo '<div class ="cats" id="categories">';
 echo '<button class="catbutton" name="all" value="all">All 
 categories</button><br>';

 while($row = mysqli_fetch_array($resultcats)) {
$jada = $row['category'];
echo ' <button id="category" class="catbutton" name="cat-submitted" 
value="'.$row['category'].'">'.$row['category'].'</button><br>';

echo '</br>';

 }
echo '</div>';

?>
<div id="display">

</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>


<script type="text/javascript">
  $(document).ready(function() {
    $('#categories .catbutton').each(function() {
      $(this).click(function(){
var category = $("#catbutton").val();
$.ajax({
  type: "POST",
  url: "demo.php",
  data: category,
  cache: false,
  success: function(result){
$("#display").html(result);
}
});

return false;

});
});
});

然后,我想在用户单击类别之一时使用AJAX。 我想获取单击类别的值,因此以后可以将其用于SQL查询。现在,我只是想看看是否可以在我的“ demo.php”上通过以下代码获取变量:

<?php
$category = $_POST['category'];
echo $category;

echo "form submitted";
echo $category;

 ?>

AJAX之所以起作用,部分原因在于:

当用户单击类别“提交的表单”时,它会弹出,但是您没有看到任何类别变量,这是我的主要目标。

2 个答案:

答案 0 :(得分:0)

在此处发布之前,我有一个较早的问题,即用户单击仅对我的第一个类别做出反应。

我通过查看另一个SO帖子解决了这个问题,该帖子建议不要为每个按钮使用ID。但是我然后忘记了更改var category = $(“#catbutton”)。val(); 到var category = $(this).val();

更改上述内容并进行更改:data:category更改为data:{“ category”:category}

解决了我的问题。

答案 1 :(得分:0)

您的Ajax代码似乎不正确。您应该更改传递参数的代码,如下所示:

  $.ajax({
      type: "POST",
      url: "demo.php",
      data: {"category": category}
      cache: false,
      success: function(result){
          $("#display").html(result);
      }
  });

在这里,您需要如上所述传递数据。希望对您有帮助。