我有jquery的问题 我在互动地图工作,点击表格href for city我wnat在sql查询中插入城市名称或号码。
此链接 链接城市:
<a href='#' class='city_pr' id=aden> </a>
mysql查询:
$sql="select * from project where city='$_SESSION[CITY]' AND active =1 ";
如何在会话到mysql查询时进行更改单击下面的链接下载页面使用jquery导航
答案 0 :(得分:4)
不可能直接使用PHP会话与jQuery,你需要做一个ajax调用。
试试这个。
<强>解释强>
(不要忘记在帖子末尾阅读我的观察结果)
<强> HTML:强>
<a href='#' id='country'>USA</a>
<br/>
<div id="result"></div>
<强> JS:强>
$('#country').click(function(){
// get the value inside the <a> tag
var country = $(this).html();
$.post('process.php', { country:country }, function(data){
// Everything is Ok, so data won't be 0
if(data != 0){
// Print country information
$('#result').html(data);
}
});
});
<强> process.php 强>
<?php
if($_POST() && isset($_POST['country'])){
/* Connect to DB */
$link = mysql_connect('server', 'user', 'pwd');
if (!$link) {
// No connection
print(0);
exit();
}
$db = mysql_select_db('db', $link);
if (!$db) {
// DB selection error
print(0);
exit();
}
/* sanitize the value */
$country = mysql_real_escape_string($_POST['country']);
/* do your query */
$sql = "SELECT * FROM country WHERE country_name = '$country'";
$result = mysql_query($sql);
if(mysql_num_rows($result) > 0){
while($row = mysql_fetch_array($result)){
// At this point I am supposing that you stored in your table
// latitudes and longitudes of countries.
echo "Latitude is: ".$row['latitude']." Longitude is: ".$row['longitude'];
}
} else {
// No results found
print(0);
}
}
?>
<强>观察:强>
例如:
如果我有:
<a href='#' id='country'>United States of America</a>
在SQL查询中,我将:
SELECT * FROM country WHERE country_name = 'United States of America';
更好的方法是:
<a href='#' id='us'>United States of America</a>
所以在我的JS中,我必须为此替换var country = $(this).html();
:
//outputs 'us'
var country = $(this).attr('id');
然后在您的SQL查询中,您将得到:
SELECT * FROM country WHERE country_name = 'us';
使用代码更合理,没有名称(名称只是为了向用户显示,以便更好地理解,因为那样您将有更多问题来清理将其与查询一起使用的值,并使用{{1}之类的函数删除空格和其他)。如果您这样做,则必须更改查询以按代码查找国家/地区:
trim();
希望这会有所帮助: - )