1

GET/POSTとの助けを借りてメソッドを使用してmysqlデータベースからhtmlページのデータを取得しようとしていjsonますJquery。シナリオは、ユーザーインターフェイス()から2つの値を取得し、それを使用してデータを取得している場所にsearchtenant.htmlPOSTすることです。私はnewterms2.htmlnewterms2.htmltenantlistmob2.phpJSONsearchtenant.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直接呼び出すと正常に機能しますが、データを表示するにはhtmlページが必要です。これは、との両方にこのhtmlページを使用するためです。クエリ()は正常に機能し、正しく返されます。しかし、 ed data( )を使用すると、phpで正しく機能しますが、ページにデータが返されません。searchtenant.htmlPOSTandroidiPhone$result = mysql_query("SELECT * FROM tenanttemp");newterms2.htmlPOST$result = mysql_query("SELECT * FROM tenanttemp WHERE TenantFirstName='$fname' and TenantLastName='$lname'");newterms2.html

解決策は何ですか?HTMLページのデータを取得するのが好きです。助けてください。

前もって感謝します。

4

1 に答える 1

0

formdataをsearchtenant.htmlからnewterms2.htmlに投稿しており、tenantlistmob2.phpには投稿していません。

  • jQuery / Javascriptは、ページに送信されたPOSTデータを処理できません。
  • jQuery.getJSONは、POSTではなくGETを使用します。

あなたがする必要があるのは、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>

それでうまくいくはずです。

于 2012-08-27T08:08:48.673 に答える