gpt4 book ai didi

javascript - 为什么我的 httpresponse 是空的?

转载 作者:行者123 更新时间:2023-11-28 08:44:48 25 4
gpt4 key购买 nike

所以我需要做的就是使用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 数据库,然后回显与该名称相关的段落。通过彻底的测试,我知道 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 代码

最佳答案

实际上你的代码是正确的。问题是您没有指定要发送的数据:

xmlhttp.open("GET", "check.php", true);

XMLHttpRequest 对象将执行对 check.php 的 HTTP 请求,仅此而已。如果您想通过 GET 发送数据,只需在 URL 中传递它们,如下所示:

xmlhttp.open("GET", "check.php?foo=bar&number=1337", true);

如果执行上述请求,PHP 脚本将在 $_GET 中包含这些数据:

array(
'foo' => 'bar',
'number' => '1337', // Note it's still a string, you must cast it as int
)

因此,如果您想从表单发送姓名,请编写以下内容:

xmlhttp.open("GET", "check.php?name=" + escape(name), true);

其中name是包含值的变量。

关于javascript - 为什么我的 httpresponse 是空的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19994322/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com