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 【问题描述】:

我正在尝试在jsonJquery 的帮助下使用GET/POST 方法从mysql 数据库中获取html 页面中的数据。场景是我从用户界面(searchtenant.html)获取两个值并将其发布到newterms2.html,其中newterms2.html 使用JSONtenantlistmob2.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 页面来处理androidiPhone。查询 ($result = mysql_query("SELECT * FROM tenanttemp");) 工作正常并正确返回到 newterms2.html。但是当我使用 POSTed 数据 ($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的主要内容,如果未能解决你的问题,请参考以下文章

角度 POST 请求不起作用但 GET 工作正常

Wcf Rest Service GET 方法无法显示 JSON 数据

jQuery 与 JSON

c# 使用HttpClient的post,get方法传输json

c# 使用HttpClient的post,get方法传输json

NSURLConnection 发送 GET 请求而不是 POST 请求