我正在尝试使用 jquery/php/mysql 创建一个应用程序。它应该首先列出数据库中的所有商店,并且效果很好。但是,当您单击一个时,您应该获得有关该特定商店的更多信息。这就是问题开始的地方。
基本上,如果我想从数据库中获取所有行,一切正常。但是当我尝试使用查询字符串来选择特定行时,它不起作用。我已经尝试了很多东西,我发现是我的 php 文件中的 $_GET 使 jquery 函数中断并且根本不输出任何内容。即使我只在 GET 上做一个回声,它也会破坏它。我不明白为什么。例如,如果我只是“选择 * where id = 2”,效果会很好。但例如在使用 GET 获取 2 的查询字符串时不是这样。
(还有,现在这只是JSON,但以后我当然需要jsonp的跨域)
这是我的 php 代码:
<?php
// Settings for accessing the DB.
$host = "localhost";
$db = "mappdb";
$username ="db-username";
$password ="******";
// Connect and query the DB and get the data for all attractions
$connect = mysql_pconnect($host, $username, $password) or die("Could not connect to the database");
mysql_select_db($db) or die("Could not select the database");
$arr = array();
$idnumber = $_GET["pid"];
$result = mysql_query("select * from attractions where id = $idnumber");
while($object = mysql_fetch_object($result)) {
$arr[] = $object;
}
echo '{"attractions":'.json_encode($arr).'}';
?>
这是我的jQuery:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="jquery.mobile-1.3.1.min.css" />
<script src="jquery-1.9.1.min.js"></script>
<script src="jquery.mobile-1.3.1.min.js"></script>
<title>Store Finder</title>
</head>
<body>
<div data-role="page" id="page">
<div data-role="header" data-position="fixed">
<a href="index.html" data-icon="back">Back</a>
<h6>Search</h6>
</div>
<div data-role="content">
<ul data-role="listview" data-filter="true" id="listed" data-filter-placeholder="Filter cities or stores..." data-inset="true">
<script type="text/javascript">
$(document).ready(function(){
var url="http://localhost/mapp/json.php?pid=2";
$.getJSON(url,function(json){
// loop through the stores here
$.each(json.attractions,function(i,dat){
$("#listed").append(
'<li><a href="viewstore.html?id='+dat.id+'">'+dat.id+' '+dat.name+'</a></li>'
).listview('refresh');
});
});
});
</script>
</ul>
</div>
<div id="msg"> </div>
<div data-role="footer" data-position="fixed">
<h6>Footer</h6>
</div>
</div>
</body>
</html>
一整天都坐在那里,我一生都无法弄清楚。非常感谢一些帮助。谢谢!