注意 - 抱歉最初的标题错误 - 这是一个不同的问题,我试图在不发布的情况下解决它。
我想问你两个关于从 php 文件调用返回数据的简单问题。感谢这个论坛,我对在 HMTL 中编写 PHP 代码以将数据保存到 db 表并从表中检索数据非常有信心。
但是现在,在单个页面上,我需要向表中添加数据、从表中检索数据并更新该数据,所有这些都无需刷新 HTML 屏幕。所以我用一个MySQL 表(6 个字段)、一个用纯 php 编写的“后端”和一个用 HTML 和 JavaScript 编写的“前端”做了一个小“测试”环境。
昨天一整天我都在拔掉我剩下的一点头发,但最终弄清楚了将数据从 php 文件传回 html/javascript 文件的概念(我将在下面为您提供所有代码)。整个事情都很好!但这并不一致-因此使用以下步骤进行了实验:
- 前端ftp上传
- 后台ftp上传
- 在 IE 上刷新前端 2 倍
- 在输入框中输入数字“150”。
(“150”是Jimi Hendrix的行号:-)) - 点击表格上的“提交”按钮。(在这个实验中,我从未使用过“回车”键)
- 如果有效,则会弹出一条警报,其中写有 Jimi Hendrix。
- 如果它不起作用 - 什么都不会弹出。
所以这里是两个实验的结果 Y=Jimi Hendrix N=no popup box
- 刷新
- YNYNNYYNYYYNYYNYYYNNY NYNY
- 刷新
- YYYNYYNYYYYYNYNYYNYNYN NYYN
我真的看不到例程何时“起作用”的模式。我已经看到这种行为是我关于保存到数据库的一些其他代码。
现在我的两个问题:
- 你能解释一下这段代码如何工作的可变性吗?有什么办法可以解决吗?
- 我将 Jimi Hendrix 放在“警报”框中,但是您会使用什么命令将他放入 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 - 我也提出这个,以防我的蛮力代码可能会帮助其他菜鸟。