2013-03-13 63 views
0

我有一个HTML选择,用户选择一个选项,然后单击去。接下来我想发生的事情是,根据他们在第一次选择中选择的选项,从另一个mysql数据库接收数据。需要帮助使用php和jquery ajax填充从mysql数据库的数据填充html选择

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

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'); 
    } 
}); 



    }); 
+0

既然你'json_encode'ing您的数据和在'success'处理器期待JSON,没有必要分析结果。你能告诉我们什么'console.log(response);'输出吗? – Steve 2013-03-13 22:49:52

回答

0

我用的是:

这是我的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