之前弄 VPNForce 网站的时候,就使用了 ASP.NET + JQuery + Json
做异步数据传输。最近做一个小PHP项目,又碰到了类似的需求。其中有一个很简单的应用,就是当用户选择了Country,例如在下拉列表中选择了
Hong Kong这个城市,那么在电话号码区号栏中,就会自动地出现0852的号码,但页面不希望刷新,有朋友在Javascript里面写了一大串
IF country='Hong Kong',ELSE IF……头晕脑胀。 现在网上已经有很多现成的城市数据库表,里面包含了电话区号,邮政编码等等,直接下下来用就好了,那么我们只需要在程序里做一些小小的处理。 直接入正题: 首先是PHP的主页面: 在 select 控件里,当触发 onchange 事件的时候,我们执行 PostCountryJson() 这个JavaScript Function 其次是 JavaScript 代码,和之前写的 ASP.NET 调用的一样的: function PostCountryJson() { var mid = $("#country").val(); var queryString = {"mid":mid} var url = "getCountrycode.php "; $.getJSON(url, queryString,function (json) { $("#tel_country_code").get(0).value = json.countryCode; }); } 也是通过 Json 数据集获取数据。在这里执行的不再是 .aspx ,而是.php了。 最后当然就是 getCountrycode.php 代码了: include_once '../configure/conn.php'; // 建立与mysql database 的链接 $country = $_GET['mid']; // 获得从PostCountryJson() 传来的mid参数,就是城市名称啦 // 执行搜索,搜索country表里该程式的资料 $selectStr = "SELECT * FROM country WHERE country_name = '".$country."'"; $result = mysql_query($selectStr,$conn); if ($result) { $countryCode = mysql_fetch_array($result); } $countryCodeStr = $countryCode['country_code']; // 将 country_code 字段的数据存放到变量 $jsonArr = array('countryCode'=>$countryCodeStr); // 按照Jason的格式写成一个数组 $jsonStr = json_encode($jsonArr); // 编码Jason数据,没想到比.net还要简单呀 echo ($jsonStr); // 输出Jason数据 ?> 完了
阅读(2376) | 评论(0) | 转发(1) |