我是一名“自学成才”的程序员,试图让php在HTML中工作,以便能够在我的网络应用程序的移动版本的phonegap中运行它。我跟着教程无济于事。 下面附有php文件和html文件的代码。
<?php
header("Content-Type: application/json");
if(isset($_POST['limit'])){
$limit = preg_replace('#[^0-9]#', '', $_POST['limit']);
$dbhost = '';
$dbuser = '';
$dbpass = '';
$db = '';
$tbl_name="Mindful Tips";
$conn = mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($db);
$i = 0;
$jsonData = "{";
$sqlString = "SELECT * FROM $tbl_name ORDER BY RAND() LIMIT $limit";
$query = mysql_query($sqlString) or die (mysql_error());
while ($row = mysql_fetch_array($query)) {
$i++;
$ID = $row["ID"];
$Tip = $row["Tip"];
$jsonData .= '"tip'.$i.'":{ "ID":"'.$ID.'","Tip":"'.$Tip.'" },';
}
//$jsonData = chop($jsonData, ",");
$jsonData .= '"arbitrary":{"itemcount":'.$i.', "returntime":"'.getdate().'"}';
$jsonData .= '}';
echo $jsonData;
}
?>
HTML文件
<!DOCTYPE HTML>
<html>
<head>
<title>Mindful Tips</title>
<style type="text/css">
div#databox {
padding: 12px;
background: #F3F3F3;
border: #CCC 1px solid;
width:550px;
height:400px;
}
</style>
<script>
function onBodyLoad() {
document.addEventListener("deviceready",onDeviceReady,false);
}
</script>
<script type="text/javascript">
function ajax_json_data(){
var databox = document.getElementById("databox");
var arbitrarybox = document.getElementById("arbitrarybox");
var hr = new XMLHttpRequest();
hr.open("POST", "json_mysql_data.php", true);
hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
hr.onreadystatechange = function() {
if(hr.readyState == 4 && hr.status == 200) {
var d = JSON.parse(hr.responseText);
arbitrarybox.innerHTML = d.arbitrary.returntime;
databox.innerHTML = "";
for(var o in d){
if(d[o].Tip){
databox.innerHTML += '<p>'+d[o].Tip+'</p>';
}
}
}
}
hr.send("limit=1");
databox.innerHTML = "requesting...";
}
</script>
</head>
<body onload="onBodyLoad()">
<script type="text/javascript" src="js/FbLogin.js"></script>
<div id="databox"></div>
<div id="arbitrarybox"></div>
<script type="text/javascript">ajax_json_data();</script>
</body>
</html>
非常感谢任何帮助。
答案 0 :(得分:1)
你不需要在php中以这种方式制作JSON数据。
您可以使用 json_encode()函数将数组转换为JSON字符串,然后将其打印出来。
代码snipp ..
` <?php
header("Content-Type: application/json");
if(isset($_POST['limit'])){
$limit = preg_replace('#[^0-9]#', '', $_POST['limit']);
$dbhost = '';
$dbuser = '';
$dbpass = '';
$db = '';
$tbl_name="Mindful Tips";
$conn = mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($db);
$i = 0;
$sqlString = "SELECT * FROM $tbl_name ORDER BY RAND() LIMIT $limit";
$query = mysql_query($sqlString) or die (mysql_error());
$data=array()
while ($row = mysql_fetch_array($query)) {
$ID = $row["ID"];
$Tip = $row["Tip"];
$data[$i]=array($ID,$Tip);
$i++;
}
$jsonData=json_encode($data);
echo $jsonData;
}
?>`
答案 1 :(得分:0)
调用json_encode的Javascript代码
<ul></ul>
<script type="text/javascript">
$(document).ready(function(){
$.getJSON('http://aam.prettypottery.ie/json_mysql_data.php', function(data) {
$.each(data, function(key, val) {
$('ul').append('<li id="' + key + '">' + val.Tip + '</li>');
});
});
});
</script>