使用Ajax和jquery和html选择按钮显示特定数据

时间:2018-09-29 15:17:33

标签: php jquery html ajax

您好社区,我真正需要做的是通过Ajax使用onchange()函数从数据库中进行选择。然后将结果返回给客户端。我使用Ajax将信息发送到服务器端,但是我在使用where条件

返回时遇到问题

//这是html页面

 <body   style="font-family:arial bold; ">

<div style="text-align:left; padding:1%;  font-family:Arial bold; color:#cccccc;font-size:40px;"> Select</div>
      <select class="form-control"  id="color" name="color" >
<option >Please select an option</option> 
  <option> Red</option>
  <option  >Yellow</option>
  <option  >white</option>
  <option  >Black</option>
  <option  >Violet</option>
</select>
<br/>


//this is where the output will be displayed with parameter (res);
<div id="dis"></div>

</body>

//这是script.js

$(function(){
    $('#color').on('change', function()
    {
    var selt= this.value ;
    d = $('#color').val();
    alert(d);
    $.ajax({
            url: "ajax-cart.php",
      method: "POST",
      data: { 
                request:"select",
            selt:selt
      }

        }).done(function(res) {

      $('#dis').val(res) ; 

console.log(res);
        });




  });

//这是ajax cart.php

  <?php// START THE SESSION
session_start();// CONFIGURATION
require("db.php");
// PROCESS REQUESTS
switch ($_POST['request']) {

  // THIS PART is for the select button
case "select":
require("db.php");

 $conn = new mysqli($dbServername, $dbUsername, $dbPassword, $dbName );

$val = $_POST['selt'];


$data =  $conn->query("SELECT * FROM `goods` where color = '.$val.' LiMIT 4");


echo Json_encode($data);
break;

这是控制台结果{“ current_field”:null,“ field_count”:null,“ lengths”:null,“ num_rows”:null,“ type”:null}

2 个答案:

答案 0 :(得分:0)

将查询发送到数据库时,不需要将变量连接到查询中。只需使用定义的变量即可:

错误:

$data =  $conn->query("SELECT * FROM `goods` where color = '.$val.' LiMIT 4");

正确:

$data =  $conn->query("SELECT * FROM `goods` where color = '$val' LiMIT 4");

此后,您需要从查询结果中生成数据。请检查this Q/A了解更多详情。

答案 1 :(得分:0)

@Blessed Media,您只是错过了获取mysql结果的机会,只是返回了查询而不是结果。

将查询更改为

$ data = $ conn-> query(“ SELECT * FROM goods,其中color ='”。$ val。“'LiMIT 4”);

添加

$ result = $ data-> fetch_array(MYSQLI_ASSOC);

之后

$ data = $ conn-> query(“ SELECT * FROM goods,其中color ='。$ val。'LiMIT 4”);

然后

echo json_encode($ result);