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