gpt4 book ai didi

javascript - php无法获取ajax发送的数据

转载 作者:行者123 更新时间:2023-12-03 10:17:09 25 4
gpt4 key购买 nike

这是js代码,ajax有两个参数,第一个是url,第二个是包含类型数据和onsuccess的对象。 (我没有使用jQuery,而是我自己定义的函数,代码在问题的最后)我只想将“文本”字符串发送到php,那么这样做有什么问题吗?我也尝试将数据更改为 data: {searchinput:"text"},但仍然不起作用。

ajax(
'http://localhost/test.php',
{
type: 'POST',
data: "searchinput=text",
onsuccess: function (responseText, xhr) {
console.log(responseText);
}
}
);

这是php代码,很抱歉在粘贴时更改了错误的代码。

$searchinput = $_POST["searchinput"];
@ $db = new mysqli('localhost', 'root', '', 'text');
if (mysqli_connect_errno()) {
echo "error:can not connect database";
}
$query = "select * from text where data like'".$searchinput."%' ";
$result = $db->query($query);

那么错误是

Undefined index: searchinput

我搜索了一些方法,例如将onsuccess函数更改为setTimeout,然后再次执行ajax,但它不起作用,只是再次发送数据,但php仍然无法获取数据

这是ajax函数

function ajax(url, options) {
if (!options.type) {
options.type = "post"
};
var xhr = new XMLHttpRequest();
xhr.open(options.type, url, true);
xhr.send(options.data);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304) {
options.onsuccess(xhr.responseText, xhr)
} else {
options.onfail(xhr.responseText, xhr);
}
};
}
}

最佳答案

好吧,既然你错误地使用了ajax,我并不感到惊讶。控制台应该有错误。

jQuery AJAX 的使用方式如下:

$.ajax({
url: "http://localhost/test.php",
type: 'POST',
data: {searchinput: text},
success: function (responseText, xhr) {
console.log(responseText);
}
}
);

url 是 ajax 期望的对象的一部分,因此它需要位于对象内部而不是外部。另外,数据需要另一个对象,您给了它一个纯字符串。

此外,正如 @Muhammad Ahmed 在他的回答中所述,您在 php 代码中使用了错误的变量。

编辑:在没有 jQuery 的 JavaScript 中使用 AJAX:

var request = new XMLHttpRequest();
request.open('POST', 'http://localhost/test.php', true);

request.onreadystatechange = function() {
if (this.readyState === 4) {
if (this.status >= 200 && this.status < 400) {
// worked
var data = JSON.parse(this.responseText);
} else {
// failed
}
}
};
request.send();
request = null;

关于javascript - php无法获取ajax发送的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29814614/

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