繁体   English   中英

需要帮助,使用php和jquery ajax从mysql数据库中的数据填充html select

[英]Need help populating an html select with data from a mysql database using php and jquery ajax

我有一个html select,用户可以在其中选择一个选项,然后单击go。 我接下来要发生的事情是根据他们在第一次选择中选择的选项,调出另一个填充了从mysql数据库接收到的数据的数据。

我的代码正在运行它将在哪里运行查询以获取数据,然后在ajax调用中成功运行。 问题是我不知道如何格式化返回的数据,以便能够用它填充html select。 我认为我需要将json的结果解析为一个数组,该数组可用于输出每个值的选择选项。 我不知道如何做到这一点。 或者,如果有人有更好的建议,请帮助。

process.php

<?php
$pdo = new PDO("mysql:host=localhost;dbname=sales_rep", "root", "");


$country = $_POST['q'];


$stmt = $pdo->prepare("
    SELECT DISTINCT state_prefix
    FROM zips
    WHERE country = '$country'
    ORDER BY state_prefix ASC
    LIMIT 50");


if($stmt->execute()){
    echo json_encode($stmt->fetchAll( PDO::FETCH_OBJ ));

} else {
    echo "query fail";
}   

?>

rep.js

 $('#country').submit(function(event) {

event.preventDefault();



 /*clear result div*/
   $("#result").html('');


  var values = $(this).serialize();



  $.ajax({
  url: "process.php",
  type: "post",
  data: values,
  dataType: 'json',
  success: function(response){
       console.log(response);
  },
  error:function(){
      alert("failure");
      $("#result").html('there is error while submit');
  }   
 }); 



  }); 

我使用了:

这是我的PHP服务器:

<?php
$HTTP_RAW_POST_DATA = file_get_contents("php://input");
$data=json_decode($HTTP_RAW_POST_DATA,true);
$option= $data['option'];
require_once '../../Model/yourmodel.php';
$model= new Model();
header("Content-Type: text/html;charset=utf-8");
print json_encode($model->getQueries($option));
?>

这是我的模型:

 $data = array();
        try {
            $myconexion= new conexion();
            $cn = $myconexion->connect();
            mysql_query("SET NAMES 'utf8'");
            $rs = mysql_query($sql, $cn); //some sql
            while($reg = mysql_fetch_assoc($rs)) {
                $data[] = $reg;
            }
            mysql_free_result($rs);
            mysql_close($cn);
        } catch (exception $e) {
            try {
                mysql_free_result($rs);
            } catch (exception $e) {

            }
            try {
                mysql_close($cn);
            } catch (exception $e) {

            }

        }
        return $data;

和一些客户端:(jquery)

$("#country").submit(function(event){
event.preventDefault();


    var option = $("#myIDoption").val();
    //my atributes
    var jsonCliente = {
        option : option,
      };

     $.ajax({
        type: "POST",
        data: JSON.stringify(jsonCliente),
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        url: "../backend/someurl.php",
        success: function ( data ) {
          //example of json result
          /*
          [{"idtb_producto":"3","name":"ENFERMEDADES ENDEMICAS EN EL PERU",
          "stock":null,"buyprice":null},{"idtb_producto":"4","name":
          "ENFERMEDADES PARASITARIAS","stock":null,"buyprice":null}]    
          */
             $.each(data, function(i) {
               var nombre = data[i].name;
               var stock = data[i].stock;
               var price = data[i].buyprice;
               //do something with my data
            });

        }
    });

    return false;
 });

希望这些信息对您有所帮助:D

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM