[英]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.