Ajax 元素返回完整的 html 代码
Ajax Element return full html code
我无法弄清楚我的代码出了什么问题,但是如果我使用以下代码调用ajax:
阿贾克斯.js:
function ajaxObj(meth, url){
var x = new XMLHttpRequest();
x.open(meth, url, true);
x.setRequestHeader("Content-type", "application/x-www_form-urlencoded");
return x;
}
function ajaxReturn(x){
if(x.readyState == 4 && x.status == 200){
return true;
}
}
注册.php
function checkusername(){
var u = _("username").value;
if( u != ""){
_("usernamestatus").innerHTML = "checking...";
var ajax = ajaxObj("POST", "signup.php");
ajax.onreadystatechange = function(){
if(ajaxReturn(ajax) == true){
_("usernamestatus").innerHTML = ajax.responseText;
}
}
ajax.send("usernamecheck="+u);
}
}
我正在调用的PHP代码在注册中如下.php:
<?php
//ajax calls usernamecheck
if(isset($_POST["usernamecheck"])){
include_once("php_includes/db_conx.php");
$username = preg_replace('#[^a-z0-9]#i', '', $_POST['usernamecheck']);
$sql = "SELECT id FROM users WHERE username = '$username' LIMIT 1";
$query = mysqli_query($db_conx, $sql);
$uname_check = mysqli_num_rows($query);
if(strlen($username) < 3 || strlen($username) > 16) {
echo '<strong style = "color:#F00;">3 - 16 characters please</strong>';
exit();
}
if(is_numeric($username[0])){
echo '<strong style = "color:#F00;">Username must begin with a letter!</strong>';
exit();
}
if($uname_check < 1){
echo '<strong style = "color:#09900;">' . $username . ' is OK</strong>';
exit();
} else {
echo '<strong style = "color:#F00;">' . $username . ' is taken</strong>';
exit();
}
}
?>
如您所见,这只是对注册表单中用户名的检查。
函数_(x)
是按 ID 获取元素。
我得到完整的 HTML 代码作为响应,而不是回声。
如果我使用以下:
<?php
//ajax calls usernamecheck
if(isset($_POST["usernamecheck"])){
echo 'test';
}
然后它返回测试 + 完整的 HTML。
我做错了什么?
您应该只在 AJAX 后端调用结束时使用一次exit()
,以便脚本将终止,并且不会向浏览器发送任何其他内容。 例如,
<?php
if(isset($_POST["usernamecheck"])){
echo 'test'; // or whatever complex logic should be here
exit();
}
会做这个伎俩。
哦,上帝为什么有正确的答案。这正是"x-www_form-urlencoded"中的错别字,应该是"x-www-form-urlencoded"。
相关文章:
- 如何解析结构不良的 html 代码
- 我的html表单无法验证.请参阅代码片段中的html代码和java脚本
- 将第一个字母大写并去掉html代码
- 我在下拉列表中尝试了下一个和前五年的html代码.接下来的5年我都过得很好.我怎样才能拿到之前的5年
- 使用.format在一些HTML代码中插入文本,会出现错误(Python)
- html代码没有在记事本++上运行
- 来自mysql的动态值用于html代码点火器视图中的图形
- 如何:编写漂亮的HTML代码和Javascript控制台
- 我需要java代码来打开html代码onclick事件
- html代码需要可点击的文本按钮
- 是否可以在JavaScript中包含HTML代码
- 如果javascript打开/关闭,则隐藏和显示html代码
- 使用PartialView作为带有变量的可重悬浮html代码
- 在jquery中复制特定的html代码
- 如何在AngularJS的上下文中使用Google Chrome Developer Tool在HTML代码中设置断点
- 显示HTML代码块
- 从HTML代码中提取数据
- 如何获取保存在变量中的HTML代码的任何属性的值
- 将html代码转换为十六进制
- JavaScript和Html代码来运行所有类型的视频并获取状态