<?php //load.php
$myid = $_POST['id'];
if($myid == 1){
echo '1';
}else if($myid == 0){
echo '0';
}
?>
<html>
<input id="id" />
<div id="result"></div>
<input type="button" id="submit" />
<script type="text/javascript">
$('#submit').click( function(){
var send = 'id=' + $('#id').val();
$.post('load.php', send, function(data){
if(data == 1){
$('#result').html('Success');
}else if(data == 0){
$('#result').html('Failure');
}else{
$('#result').html('Unknow');
}
});
});
</script>
</html>
我在一些免费的主机中测试这个脚本并且它可以工作但是在我真正的主机jquery中,未识别的数据返回并且它总是显示'Unknow'。
当我改变if(data =='1')时,它也显示'Unknow'
EX:输入ID = 1点击提交&amp;数据返回是'未知'
为什么?我认为来自主机的这个错误,因为我在一些免费的主机上测试它并且它可以工作,但现在在我的真实主机中我得到了这个错误,我怎么能解决它?
答案 0 :(得分:2)
您使用#result但已重新发布
如果设置了myid,则除了你的价值之外你不需要返回任何东西。正如Rob指出的那样,您返回1<html>...
或0<html>....
由于某种原因,echo“1”实际上返回data =“1”;所以是一个尾随空间。
原因在此概述 http://ellislab.com/expressionengine/user-guide/development/guidelines/general.html#php-closing-tag
PHP文档上的PHP结束标记?&gt;是PHP解析器的可选项。但是,如果使用,则结束标记之后的任何空格,无论是由开发人员,用户还是FTP应用程序引入,都可能导致不需要的输出,PHP错误,或者如果后者被抑制,则会出现空白页。因此,所有PHP文件都应该使用结束的PHP标记,而是使用注释块来标记文件的结尾及其相对于应用程序根目录的位置。这使您仍然可以将文件标识为完整而不是截断。
或者修剪结果:
<?php //load.php
if(isset($_POST["id"])){
$myid = $_POST['id'];
if($myid == "1"){
echo "1";
}else if($myid == "0"){
echo "0";
}
}
else {
?>
<!DOCTYPE html>
<html>
<head>
<title>Post something</title>
<script src="http://code.jquery.com/jquery-1.10.0.min.js"></script>
<script type="text/javascript">
$(function() {
$('#submit').click( function(){
$.post('load.php', {"id":$('#id').val()}, function(data){
window.console&&console.log(data,data=="1");
var val = $.trim(data);
if(val == "1"){
$('#resurl').html('Success');
}else if (val == "0"){
$('#resurl').html('Failure');
}else{
$('#resurl').html('Unknown:[<span>'+val+'</span>]');
}
});
});
});
</script>
</head>
<body>
<input id="id" />
<div id="resurl"></div>
<input type="button" id="submit" />
</html>
<? } /* end php tag can be left out to avoid trailing spaces after it */