0

我是 AJAX 和 jQuery 的新手。我正在尝试从 unrate.php 传递一个数字以用作 checkVal(如下所示)。该文件做了很多事情,但它只回显数字。当我添加一个警报(checkVal)时,它显示一个无效字符,而不是我想要的数字。(我只想要号码)...

ajax 处理程序:

$.get("unrate.php?numb="+ID, function(checkVal){
  if (checkVal == 1) {
    number.innerHTML = addNumb + 1;
  } else { 
    number.innerHTML = addNumb - 1;
  }
});

unrate.php:

<?php
$uNum = $_SESSION['userNum'];
$ider = $_GET['numb'];
$sql = mysql_query("SELECT * FROM ratecheck WHERE ID =".$ider);
$checkRay = mysql_fetch_array($sql);
$checkVal = $checkRay[$uNum];

$sqlZ = mysql_query("UPDATE ratecheck SET `".$uNum."`=0 WHERE ID=".$ider)
or die(mysql_error());

    $sqlB = mysql_query("SELECT * FROM sources WHERE ID =".$ider);
    $sourceRay = mysql_fetch_array($sqlB);
    $newRC = $sourceRay['ratecount'] - 1;

    mysql_query("UPDATE sources SET ratecount =".$newRC." WHERE ID =".$ider)
    or die(mysql_error());

if ($checkVal > 1)
    {   
    $newpts = $sourceRay['points'] - 1; 
    $userEmail = $sourceRay['user'];

    mysql_query("UPDATE sources SET points =".$newpts." WHERE ID =".$ider)
    or die(mysql_error());  

        if ($_SESSION['userName']) 
        {
            $findUser = mysql_query("SELECT * FROM users WHERE email LIKE '".$userEmail."'") or mysql_error();
            $currentRate = mysql_fetch_array($findUser);
            $newrating = $currentRate['rating'] - 1;
            mysql_query("UPDATE users SET rating =".$newrating." WHERE email LIKE '".$userEmail."'")
            or mysql_error();      

        }
        else
        {
            die('ERROR');
        }
    }
else 
    {
    $newpts = $sourceRay['points'] + 1; 
    $userEmail = $sourceRay['user'];


    mysql_query("UPDATE sources SET points =".$newpts." WHERE ID =".$ider)
    or die(mysql_error());

        if ($_SESSION['userName']) 
        {
            $findUser = mysql_query("SELECT * FROM users WHERE email LIKE '".$userEmail."'") or mysql_error();
            $currentRate = mysql_fetch_array($findUser);
            $newrating = $currentRate['rating'] + 1;
            mysql_query("UPDATE users SET rating =".$newrating." WHERE email LIKE '".$userEmail."'")
            or mysql_error();      

        }
        else
        {
            die('ERROR');
        }
    }
echo $checkVal;
mysql_close(); 
?>
4

1 回答 1

0

输出开头或结尾处的额外字符是您在使用 php.ini 时偶尔会遇到的。我非常赞同建议查看服务器原始输出的评论。您可能还想考虑以下可能性:

脚本文件开头或结尾的不可见字符。使用会显示隐藏字符的文本编辑器(甚至是十六进制编辑器)并查看是否有。?>此外,如果您没有做任何其他事情,您不必结束您的 php 脚本。您可以将其保持打开状态,因为这将防止字符出现在最后。

检查您的脚本具有的字符编码。这可能不是解决方案,但前段时间当我将编码更改为没有字节顺序标记的 UTF8 时,我遇到了类似的情况。尝试做同样的事情,看看是否能解决它

于 2012-10-01T06:21:45.367 回答