在mysql中使用javascript变量查询并填充listview
Using javascript variable in mysql query and populate listview
我有一个谷歌地图/标记应用程序,我想在mysql查询中使用标记id,以便在单击标记时在列表视图中提取与标记相关的数据。
该变量是在单击标记时分配的,我使用ajax将值传输到一个php文件中,以便在mysql查询中使用该变量。
JS
function bindInfoWindow(marker, map, infoWindow, html) {
google.maps.event.addListener(marker, 'click', function() {
infoWindow.setContent(html);
infoWindow.open(map, marker);
var site_id = marker.get("id");
$.ajax({
url: 'getoffer.php',
type: "POST",
data: { site: site_id},
success: getoffers
});
});
}
成功后,我调用了getoffers函数,该函数用数据库值填充列表视图。
var output1 = '';
function getoffers() {
$.post( "getoffer.php?getjson", function( data ) {
var data = JSON.parse(data);
console.log(data);
$.each(data, function(index, value){
output1 += '<li data-id='+ value.offer_id +'><a href="#"">' + value.offer_title + '</a></li>';
});
$('#offerlist').html(output1).listview().listview('refresh');
});
}
PHP
<?php
$site = $_POST['site_id'];
require("dbconnect.php");
try {
$DBH = new PDO("mysql:host=$server;dbname=$database;charset=utf8", $username, $password,
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"));
}
catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
$STH = $DBH->prepare("SELECT * FROM Offer WHERE site_id='$site'");
$STH->execute();
$arr = $STH->fetchAll();
echo json_encode($arr);
die();
当我运行应用程序时,没有任何错误,但列表视图为空。
当我从sql中删除ajax代码和where子句时,代码会返回该表中的所有值,这样我就知道它与数据库连接和到listview的输出有关。我在ajax中传递的变量一定出了问题,或者我调用代码不正确。
如有任何建议,不胜感激。感谢
由于某种原因,您在success函数中发出了一个单独的ajax请求。成功函数已经将数据传递给它,所以只需删除第二个ajax请求:
function getoffers(data) {
//$.post( "getoffer.php?getjson", function( data ) {
var data = JSON.parse(data);
console.log(data);
$.each(data, function(index, value){
output1 += '<li data-id='+ value.offer_id +'><a href="#"">' + value.offer_title + '</a></li>';
});
$('#offerlist').html(output1).listview().listview('refresh');
//});
}
此外,正如@Paul Roub所指出的,您的post数据键与php不匹配,或者将ajax中的数据更改为:
data: { site_id: site_id},
OR更改php以使用密钥site
:
$site = $_POST['site'];
相关文章:
- 如何在下拉列表更改时自动填充mysql查询结果中的文本框值
- 通过位置栏更改查询字符串,AJAX加载的菜单不会't在没有硬刷新的情况下重新填充
- Mongoose,按填充字段对查询进行排序
- 如何填充嵌套查询
- 在“onexit”或“onsubmit”之后,查询mysql并填充表单字段,而无需离开页面php js
- 使用下拉列表中的值查询 MySQL 数据库,然后使用结果填充文本字段而不刷新页面
- 使用基于查询字符串参数的 Angular 填充选择元素
- 对填充字段的 MongoDB 查询
- 使用组合框填充另一个组合框,以便用户可以运行查询
- j查询基于值的填充圆圈
- 如何使用 Javascript 或 jQuery 从 URL 获取查询字符串以填充选择值
- 填充字段,该字段是单个查询中嵌入数组的属性
- 在Mongoose中使用RegExp填充后进行查询
- 搜索查询>填充下拉字段
- 在mysql中使用javascript变量查询并填充listview
- 如何使用$.get使用Rails查询填充列表
- js水线查询填充
- 基于仅使用1个表的另一个选择框从数据库查询填充选择框
- 使用嵌入式查询填充RxJs
- 从同一个MySQL查询填充两个javascript数组