所以我需要做的就是使用 ajax 从文本框中获取名称,将其提交给 php 脚本,然后打印 php 的结果。
这是我到目前为止所拥有的:
<form action="" method="POST">
Are you in the deathnote? <br/>
Name: <textarea type="text" name="checkname"></textarea>
<input type="submit" value="Submit" onclick="namecheck()">
</form>
<div id="coddisp"> Nothing yet </div>
这是我拥有的ajax:
<script>
function namecheck() {
var xmlhttp;
if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("coddisp").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET", "check.php", true);
xmlhttp.send();
}
</script>
现在 PHP 脚本中发生的所有事情就是它使用名为“checkname”的文本框中的名称(使用 POST)查询一个 sql db,然后它回显与该名称相关的段落。通过彻底的测试,我知道 php 脚本可以在没有 AJAX 的情况下工作。
因此,就我现在所拥有的而言,它会从 URL 中的文本框中发送名称,但是它将coddisp
div 留空。
有什么想法吗?
<?php
if( $_SERVER['REQUEST_METHOD'] == 'POST' &&
isset($_POST['checkname']))
{
$link = mysqli_connect('localhost', 'rhoiydsc_testusr', 'Pass123!', 'rhoiydsc_deathnote');
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
/* create a prepared statement */
if ($stmt = mysqli_prepare($link, "SELECT cod FROM deathnote WHERE victim=?")) {
/* bind parameters for markers */
mysqli_stmt_bind_param($stmt, "s", $_POST['checkname']);
/* execute query */
mysqli_stmt_execute($stmt);
/* bind result variables */
mysqli_stmt_bind_result($stmt, $cod);
/* fetch value */
mysqli_stmt_fetch($stmt);
echo $cod;
/* close statement */
mysqli_stmt_close($stmt);
}
/* close connection */
mysqli_close($link);
}
?>
编辑:添加 PHP 代码