GET / POST方法无法使用json从mysql数据库获取数据到html
Posted
技术标签:
【中文标题】GET / POST方法无法使用json从mysql数据库获取数据到html【英文标题】:GET/POST method not working to get data from mysql database to html using json 【发布时间】:2012-08-10 00:14:59 【问题描述】:我正在尝试在json
和Jquery
的帮助下使用GET/POST
方法从mysql 数据库中获取html 页面中的数据。场景是我从用户界面(searchtenant.html
)获取两个值并将其发布到newterms2.html
,其中newterms2.html
使用JSON
从tenantlistmob2.php
获取数据。
我的searchtenant.html
是
<!DOCTYPE HTML>
<html>
<body>
<form action="newterms2.html" method="post">
First Name:<input type="text" id="fname" name="fname" placeholder="First Name" required="required"/><br /><br />
Last Name: <input type="text" id="lname" name="lname" placeholder="Last Name" required="required"/><br /><br />
<input type="submit" id="save" name="search" value="Search"/>
</form>
</fieldset>
</body>
</html>
我的tenantlistmob2.php
是
<?php
include('connection.php');
$fname = $_POST['fname'];
$lname = $_POST['lname'];
$result = mysql_query("SELECT * FROM `tenanttemp` WHERE `TenantFirstName`='$fname' and `TenantLastName`='$lname'");
//$result = mysql_query("SELECT * FROM `tenanttemp`");
while ($row = mysql_fetch_assoc($result))
$array[] = array($row['TenantFirstName']);
echo json_encode($array);
?>
我的newterms2.html
是这样的
<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript" src="myjquery.js"></script>
<script type="text/javascript" language="javascript">
$(document).ready(function()
jQuery.getJSON("tenantlistmob2.php", function (jsonData)
jsonData= eval(jsonData);//get json array
for (i = 0; i < jsonData.length; i++)//iterate over all options
for ( key in jsonData[i] )//get key => value
var tblRow = "<tr>" + "<td>" + "<a href='#'>" + jsonData[i][key] + "</a>" + "</td>" + "</tr>"
$(tblRow).appendTo("#getname tbody");
);
);
</script></head>
<body>
<form name="index">
<div id="getname2"></div>
<div>
<table id="getname" border="1">
<thead>
<th>Name</th>
</thead>
<tbody>
</tbody>
</table>
</div>
</form>
</body>
</html>
这是全部场景。如果我使用POST
方法直接从searchtenant.html
调用tenantlistmob2.php
,它工作正常。但我需要html 页面来显示数据,因为我将使用这个html 页面来处理android
和iPhone
。查询 ($result = mysql_query("SELECT * FROM tenanttemp");
) 工作正常并正确返回到 newterms2.html
。但是当我使用 POST
ed 数据 ($result = mysql_query("SELECT * FROM tenanttemp WHERE TenantFirstName='$fname' and TenantLastName='$lname'");
) 时,它在 php 中正常工作,但没有将数据返回到 newterms2.html
页面。
解决办法是什么?我喜欢在 html 页面中获取数据。请帮助。
提前致谢。
【问题讨论】:
【参考方案1】:您将表单数据从 searchtenant.html 发布到 newterms2.html 而不是tenantlistmob2.php。
jQuery/Javascript 无法处理发送到页面的 POST 数据。 jQuery.getJSON 使用 GET,而不是 POST。您需要做的是将 newterms2.html 更改为一个 PHP 页面,该页面可以使用来自 searchtenant.html 的 POST 数据并将其用于 ajaxrequest。
newterms2.php 中的Javascript更改
<script type="text/javascript">
$(document).ready(function()
$.ajax(
url: 'tenantlistmob2.php',
dataType: 'json',
data: <?php echo 'fname='.$_POST['fname'].'&lname='.$_POST['lname']; ?>,
type: 'POST',
success: function(jsonData)
jsonData = eval(jsonData); //get json array
for (i = 0; i < jsonData.length; i++)//iterate over all options
for ( key in jsonData[i] )//get key => value
var tblRow = "<tr>" + "<td>" + "<a href='#'>" + jsonData[i][key] + "</a>" + "</td>" + "</tr>"
$(tblRow).appendTo("#getname tbody");
);
</script>
这应该可以解决问题。
【讨论】:
以上是关于GET / POST方法无法使用json从mysql数据库获取数据到html的主要内容,如果未能解决你的问题,请参考以下文章
Wcf Rest Service GET 方法无法显示 JSON 数据
c# 使用HttpClient的post,get方法传输json