GET / POST方法无法使用json将数据从mysql数据库获取到html

时间:2012-08-13 18:09:48

标签: php mysql json html5

我试图在GET/POSTjson的帮助下,使用Jquery方法从mysql数据库获取html页面中的数据。方案是我从用户界面(searchtenant.html)获取两个值并将其POST到newterms2.html,其中newterms2.html使用tenantlistmob2.phpJSON获取数据。 我的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> 

这是总体情景。如果我使用tenantlistmob2.php方法直接从searchtenant.html致电POST,它工作正常。但我需要html页面来显示数据,因为我将使用此html androidiPhone的页面。查询($result = mysql_query("SELECT * FROM tenanttemp");)工作正常并正确返回newterms2.html。但是当我使用POST ed数据($result = mysql_query("SELECT * FROM tenanttemp WHERE TenantFirstName='$fname' and TenantLastName='$lname'");)时,它在PHP中正常工作但不会将数据返回到{ {1}}页面。

解决方案是什么?我喜欢在html页面中获取数据。请帮助。

提前致谢。

1 个答案:

答案 0 :(得分:0)

您要将searchdant.html中的formdata发布到newterms2.html,而不是发布到tenantlistmob2.php。

  • jQuery / Javascript无法处理发送到页面的POST数据。
  • jQuery.getJSON使用GET,而不是POST。

您需要做的是将newterms2.html更改为可以使用来自searchtenant.html的POST数据并将其用于ajaxrequest的PHP页面。

newterms2.php中的Javascriptchanges

<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>

这应该可以解决问题。