注意 - 最初は間違ったタイトルで申し訳ありません - それは私が投稿せずに解決しようとしている別の質問でした.
PHP ファイル呼び出しからデータを返すことについて、2 つの簡単な質問をしたいと思います。このフォーラムのおかげで、HMTL 内で PHP コードを記述して、データを db テーブルに保存したり、テーブルからデータを取得したりすることに自信が持てるようになりました。
しかし今では、1 つのページで、HTML 画面を更新することなく、テーブルにデータを追加し、テーブルからデータを取得し、そのデータを更新する必要があります。そこで、 MySQL テーブル(6 フィールド)、純粋な php で記述された「バックエンド」、およびHTML と JavaScript で記述された「フロントエンド」を備えた小さな「テスト」環境を作成しました。
昨日一日中、私は自分が残したわずかな髪の毛を引き抜いていましたが、最終的に php ファイルから html/javascript ファイルにデータを戻すという概念を理解しました (以下にすべてのコードを示します)。すべてがうまく機能します!しかし、一貫性がないため、次の手順で実験を行いました。
- フロントエンドのftpアップロード
- バックエンドの ftp アップロード
- IE でフロントエンドを 2 回更新する
- 入力ボックスに数字「150」を入力します。(「150」は
ジミ・ヘンドリックスの行番号です :-) ) - フォームの「送信」ボタンをクリックします。(この実験では、「Enter」キーは使用しませんでした)
- うまくいけば、Jimi Hendrix が書かれた警告が表示されます。
- うまくいかない場合、何も表示されません。
これが2つの実験の結果です Y=ジミ・ヘンドリックス N=ポップアップボックスなし
- リフレッシュ
- YNYNNYYNYYYNYYYNYYYNNY NYNY
- リフレッシュ
- YYYNYYYNYYYYYNYNYYNYNYN NYYN
ここでは、ルーチンがいつ「機能する」かについてのパターンを本当に見ることができません。この動作は、データベースへの保存に関する他のコードの一部であることがわかりました。
今私の2つの質問:
- このコードがどのように機能するかについて説明できますか? 私はそれを修正する方法はありますか?
- ジミ・ヘンドリックスを「アラート」ボックスに入れましたが、彼を div に入れるにはどのコマンドを使用しますか? ?。ロード?または他のコマンド?
PHPファイルは次のとおりです。
<?php
$localid = $_POST['localid'];
$host = "hostname";
$user = "username";
$password = "password";
$dbname = "dbname";
$cxn = mysqli_connect($host,$user,$password,$dbname);
if (mysqli_connect_errno()) {echo "No connection" . mysqli_connect_error();}
$query = " select * from testtable where localid = $localid ";
$result = mysqli_query($cxn, $query) or die ("could not query database 1");
while ($row = mysqli_fetch_array($result))
{
$firstname = $row['firstname'];
$lastname = $row['lastname'];
$zip = $row['physzip'];
$gender = $row['gender'];
$dob = $row['dob'];
}
$variablestopass = array
(
'ln' => $lastname,
'fn' => $firstname,
'zip' => $zip,
'gender' => $gender,
'dob' => $dob
);
echo json_encode($variablestopass);
?>
そして、これが「フロントエンド」です(ヘッダーなし):
<body>
<form name="#inputform">
<table class="divtest">
<tr><td>Localid:</td><td> <input type="text" id="localid"></td></tr>
<tr><td colspan="2" align="center"><input type="submit" id="submitbutton" value="Submit" /></td></tr>
</table>
</form>
<div id="loadmehere" class="divtest"></div>
<script type="text/javascript">
$(document).ready(function(e) {
$("#submitbutton").click(function() {
var localid = document.getElementById("localid").value;
$.ajax({
type: "POST",
url: "testajaxbackend.php",
data: {localid: localid},
dataType : 'json',
success: function(result) {
alert(result['fn'] + result['ln'] + result['zip'] + result['gender'] + result['dob']);
},
error : function() { alert("error"); }
});//End of ajax call
});//End of click
});//End of ready
</script>
</body>
</html>
あなたがレンダリングするかもしれないどんな助けにも前もって感謝します。PS - 他の初心者が私の力ずくのコードによって助けられる可能性がある場合に備えて、これも提示します。