2012-09-13 63 views
-1

我想从MySQL数据库显示在html中的列表。要从MySQL获取数据我使用json和javascript。但它什么也没有显示!显示数据在html5从数据库使用javascript和json

我的HTML页面

<!DOCTYPE html> 
<html class="ui-mobile-rendering"> 
<head> 
<title></title> 
<meta name="viewport" content="width=device-width, initial-scale=1"> 
<link rel="stylesheet" href="css/jquery.mobile-1.0.1.min.css"/> 
</head> 
<body> 
<div id="tenant" data-role="page"> 

    <div data-role="header"> 
     <a href="index.html" data-icon="back" class="back ui-btn-left">Back</a> 
     <h1>My Lease</h1> 
    </div> 

    <div data-role="content"> 

     <ul id="actionList" data-role="listview" data-inset="true"> 
     </ul> 
    </div> 
    </div> 
<script src="js/tenantlease.js"></script> 
<script src="lib/jquery-1.7.1.min.js"></script> 
<script src="js/jqm-config.js"></script> 
<script src="lib/jquery.mobile-1.0.1.min.js"></script> 
<script src="lib/underscore-min.js"></script> 
<script src="lib/backbone-min.js"></script> 
<script src="js/main.js"></script> 
</body> 
</html> 

当我从浏览器ID叫我的PHP文件is.It工作正常。

<?php 
session_start(); 
include 'connection.php'; 
$email=$_SESSION["PM"]; 

$sql = "select * from phpap105_tenantinfo where TenantEmailAddress=:id"; 
try { 
$dbh = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass); 
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
$stmt = $dbh->prepare($sql); 
$stmt->bindParam("id", $_GET[id]); 
$stmt->execute(); 
$employee = $stmt->fetchObject(); 
$dbh = null; 
echo '{"item":'. json_encode($employee) .'}'; 
} catch(PDOException $e) { 
echo '{"error":{"text":'. $e->getMessage() .'}}'; 
} 
?> 

我的JavaScript文件是

$('#tenant').live('pageshow', function(event) { 
//var id = getUrlVars()["id"]; 
var id = '[email protected]'; 
$.getJSON('tenantlease.php?id='+id, displayEmployee); 
    }); 

    function displayEmployee(data) { 
var employee = data.item; 
//console.log(employee); 


if (employee.TenantFirstName) { 
    $('#actionList').append('<li><h3>First Name</h3>' + 
      '<p>' + employee.TenantFirstName + '</p></a></li>'); 
} 
if (employee.TenantLeaseSigned) { 
    $('#actionList').append('<li><h3>Lease Sign</h3>' + 
      '<p>' + employee.TenantLeaseSigned + '</p></a></li>'); 
} 
    $('#actionList').listview('refresh'); 
    } 

请帮助我怎样才能在HTML page.Thanks数据提前任何形式的帮助。

+0

从jquery 1.7开始,'live()'被弃用。尝试使用'on()'或'委托()'?如果不检查这个http://api.jquery.com/live/ –

+0

'displayEmployee()'中'data'的值是什么? – FilmJ

回答

0

好问题。你需要做的是Step-Debug JavaScript,你会看到问题。

如果这是你部分熟悉的或者完全不熟悉的......我强烈推荐给你,它将开辟一个发展能力的新世界。

例如...

  1. 在Chrome中打开
  2. 点击右键,选择 - >检查元素。
  3. 在脚本选项卡下,打开您的JavaScript文件。
  4. 在左侧空白处,您可以单击“栏”区域来设置断点,该断点将显示为圆点。
  5. 在所有功能中设置断点......
  6. 点击刷新。 JavaScript的执行将停止在您的第一个有效断点处。
  7. 在这一点上,你可以检查变量,看看它们是否是你认为它们的值。

如果你没有看到一个断点,那是因为你的“pageshow”事件不工作。

Here is info on that.

Here is another example.

我的猜测是,你会发现:1)该页面显示没有被调用,2)调用你的PHP是出乎意料的格式不正确,或您的回调是没有得到所谓的背部。

断点将可视化所有这些。

此外,检查您的回调函数,它可能为空,如果它缺少大括号(它在您的文章中),并且失败。如果发生这种情况,Chrome开发工具的控制台将显示红色错误消息。

它是一个强大的工作流程。 希望有所帮助。