php 无法通过 innerHTML 在 javascript 中检查回显字符串
php echo string cannot be checked in javascript by innerHTML
我是 php 和 javascript 的新手,遇到了一些问题。
在我的 php 文件中(即 a.php),我输入如下代码:
<?php
...(checking sth in database)...
if($found == 0)
echo "Valid";
else echo "Not Valid";
?>
然后,在我的另一个 php 文件中,我将表单数据传递给 a.php 以检查数据库中是否有重复的记录,如果没有,它将打印 "Valid"在标签中通过 AJAX:
function ajax(str){
var xhttp = new XMLHttpRequest;
xhttp.onreadystatechange=function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("e").innerHTML = xhttp.responseText;
}
};
var data = 'Email='+ str;
xhttp.open("POST", "a.php" , true);
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.send(data);
}
这是我的标签:
<label style="color: red;" id="e"></label>
我想检查标签值是否为"Valid",然后我写了这样的代码:
var email = document.getElementById("e").innerHTML;
if (email == "Valid")
test.innerHTML = "it works!"; //test is another paragragh tag with id="test"
但是我无法打印 "it works!",我尝试回显另一个值(即回显“1”;),当我输入
if (email == 1)
可以打印出来"it works!"。
有谁知道为什么会这样,如果我想打印 "Valid" 应该怎么做?
如果警告电子邮件变量显示 "Valid" 但如果 (email=='Valid') returns 为假,则意味着您在返回的 AJAX 数据中有一些额外的字符。
所以,尝试用
删除它们
- 关闭 a.php 中的 ?> 标签(或删除 ?> 标签后的空格)
- 确保数据库检查部分不打印任何内容。
- 您也可以使用替代方法来检查该条件。
比如你可以这样做:
//var email = document.getElementById("e").innerHTML;
//if (email == "Valid")
var email = document.getElementById("e").innerHTML;
if (email.indexOf("Not")==-1)
test.innerHTML = "it works!";
我是 php 和 javascript 的新手,遇到了一些问题。 在我的 php 文件中(即 a.php),我输入如下代码:
<?php
...(checking sth in database)...
if($found == 0)
echo "Valid";
else echo "Not Valid";
?>
然后,在我的另一个 php 文件中,我将表单数据传递给 a.php 以检查数据库中是否有重复的记录,如果没有,它将打印 "Valid"在标签中通过 AJAX:
function ajax(str){
var xhttp = new XMLHttpRequest;
xhttp.onreadystatechange=function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("e").innerHTML = xhttp.responseText;
}
};
var data = 'Email='+ str;
xhttp.open("POST", "a.php" , true);
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.send(data);
}
这是我的标签:
<label style="color: red;" id="e"></label>
我想检查标签值是否为"Valid",然后我写了这样的代码:
var email = document.getElementById("e").innerHTML;
if (email == "Valid")
test.innerHTML = "it works!"; //test is another paragragh tag with id="test"
但是我无法打印 "it works!",我尝试回显另一个值(即回显“1”;),当我输入
if (email == 1)
可以打印出来"it works!"。 有谁知道为什么会这样,如果我想打印 "Valid" 应该怎么做?
如果警告电子邮件变量显示 "Valid" 但如果 (email=='Valid') returns 为假,则意味着您在返回的 AJAX 数据中有一些额外的字符。
所以,尝试用
删除它们- 关闭 a.php 中的 ?> 标签(或删除 ?> 标签后的空格)
- 确保数据库检查部分不打印任何内容。
- 您也可以使用替代方法来检查该条件。
比如你可以这样做:
//var email = document.getElementById("e").innerHTML;
//if (email == "Valid")
var email = document.getElementById("e").innerHTML;
if (email.indexOf("Not")==-1)
test.innerHTML = "it works!";