1
<?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 中返回了未识别的数据并且它总是显示“未知”。

当我改变 if(data == '1') 它也显示'Unknow'

EX: input id = 1 click submit & data return is 'Unknow'

为什么 ??我认为这个错误来自主机,因为我在一些免费主机中对其进行了测试并且它可以工作,但是现在在我的真实主机中我得到了这个错误,我该如何解决它?

4

1 回答 1

2
  1. 您使用 #result 但有 resurl

  2. 如果设置了 myid,您不需要返回任何内容,而是您的值。正如 Rob 指出的那样,您返回1<html>...0<html>....

  3. 由于某种原因, echo "1" 实际上返回 data ="1 "; 所以一个尾随空格。

此处概述了原因 http://ellislab.com/expressionengine/user-guide/development/guidelines/general.html#php-closing-tag

PHP 文档上的 PHP 结束标记 ?> 对于 PHP 解析器是可选的。但是,如果使用,结束标记后面的任何空格,无论是由开发人员、用户还是 FTP 应用程序引入,都可能导致不需要的输出、PHP 错误,或者如果后者被抑制,则会导致空白页面。出于这个原因,所有 PHP 文件都应该省略结束 PHP 标记,而是使用注释块来标记文件的结尾及其相对于应用程序根目录的位置。这使您仍然可以将文件标识为完整且未截断。

或者修剪结果:

Live Demo

<?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 */ 
于 2013-11-07T10:02:46.040 回答