Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Ajax:检查文本字段时的奇怪行为_Php_Ajax_Textfield - Fatal编程技术网

Php Ajax:检查文本字段时的奇怪行为

Php Ajax:检查文本字段时的奇怪行为,php,ajax,textfield,Php,Ajax,Textfield,我有一个注册表,通过ajax检查用户名字段的可用名称。将用户名输入用户名字段并按下“检查!”按钮,脚本将值发送到php脚本。然后php脚本将用户名字段替换为用户名字段+样式,如下所示: 因此,当将表单中的用户名字段替换为php脚本中的等效字段,然后提交表单时,将在页面上的脚本中检查用户名字段是否为空。它返回一个错误,即它是空的,尽管在通过ajax检查用户名字段后,它有值 我不明白为什么会出现空字段检查脚本,具有相同的字段名和值 IE浏览器中的p.S.运行良好,但在Firefox和Opera中测

我有一个注册表,通过ajax检查用户名字段的可用名称。将用户名输入用户名字段并按下“检查!”按钮,脚本将值发送到php脚本。然后php脚本将用户名字段替换为用户名字段+样式,如下所示:

因此,当将表单中的用户名字段替换为php脚本中的等效字段,然后提交表单时,将在页面上的脚本中检查用户名字段是否为空。它返回一个错误,即它是空的,尽管在通过ajax检查用户名字段后,它有值

我不明白为什么会出现空字段检查脚本,具有相同的字段名和值

IE浏览器中的p.S.运行良好,但在Firefox和Opera中测试返回错误

这是一个类似表单的示例:

<form method="post" action="check_form.php">
<div id="loadfield"><input type="text" name="username" value=""></div>
<input type="button" value="Check!" onclick="...script for sending username value to PHP script...">
<input type="submit" value="Submit a form">
</form>

这是一个脚本,用于在提交表单后检查空字段:

<?
if(empty($_POST["username"])){
echo "<script>alert('Username field is empty!');</script>";
}
?>

首先,如果看不到Javascript代码,很难知道脚本对HTTP请求返回的响应做了什么。我猜是这里出了点问题

其次。。。我想也许你处理问题的方式不对。你所做的根本不是ajax。您正在进行的对话似乎是:

嗨,请帮我检查一下这个用户名
php:好的,这里有一个新的输入字段来替换旧的输入字段

对话应该是:

嗨,请帮我检查一下这个用户名
php:抱歉,该用户名已被占用
好的,谢谢,我会让用户知道的

php脚本应该返回一个XML文件,指示用户名的可用性。比如:

<?xml version="1.0" encoding="UTF-8"?>
<logincheck username="mylogin">
    <available>false</available>
</logincheck>

假的
然后由javascript代码来解释该响应并将类添加到输入字段(比设置内联样式更好),或者显示您认为合适的任何其他消息


那么你实际上是在做ajax

发布你的代码样本,这可能比试图理解你说的话更简单。。。Code=TV,your writing=radio lol:)radio让你发挥想象力,给出100个场景,我们可能错了:)所以发布一个代码示例。我已经更新了问题。那么,为什么要通过ajax将表单中的一个文本字段替换为另一个(相同的名称)并提交表单,php脚本不会收到此类文本字段的任何值呢?我正在通过GET方法通过XMLHttpRequest()将用户名发送到php脚本。然后PHP检查用户名变量,形成ajax脚本返回的响应,就像返回html一样,返回innerHTML。
<?xml version="1.0" encoding="UTF-8"?>
<logincheck username="mylogin">
    <available>false</available>
</logincheck>