1

我有一个使用 ajax 向我的 php 文件发送请求的脚本。php 文件应该更新一个 txt 文件。在我的本地主机上,脚本工作正常,但在网络服务器上却不行。

测试html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN">
<html>
<head>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js" type="text/javascript" charset="utf-8"></script>
    <script type="text/javascript" charset="utf-8">

$(document).ready(function(){
for (i=1; i<=100; i++){
    $('#rate'+ i +'_').click(i, function(e){
    sendValue($(this).val(),e.data);
    });
}
});
function sendValue(str,str2){
$.post("/php/test.php",{ sendValue: str, sendValue2 : str2 },
    function(data){
    $('#display').html(data.returnValue);
    }, "json");
}        
</script>
</head>


<body>
<select id="rate1_" name="rate1">
<option value="1" selected="selected">1</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>

<select id="rate2_" name="rate2">
<option value="2" selected="selected">2</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>

<select id="rate3_" name="rate3">
<option value="3" selected="selected">3</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
</body>
</html>

测试php

<?php 
if ((isset($_POST['sendValue'])) and (isset($_POST['sendValue2']))){
    $value = $_POST['sendValue']; 
    $value2 = $_POST['sendValue2']; 

    $array_rate[$value2]=$value;
    $i=0;
    $f1 = fopen('info.txt','r');
    while (!feof($f1)){
        $i=$i+1;
        $array_rate[$i]=fgets($f1);
    }
    $nr=$i;
    fclose($f1);

    $handle = fopen('info.txt','w');
    fclose($handle);

    for ($i=1; $i<=$nr; $i++){
        if ($i!=$value2){
        $array_boss[$i]=$array_rate[$i];
        }else{
        if($i!=$nr){
        $array_boss[$i]=$value."\n";
        }else{
        $array_boss[$i]=$value;
        }
        }
    }
    $handle2 = fopen('info.txt','a');
    for ($i=1; $i<=$nr; $i++){
        fwrite($handle2,$array_boss[$i]);
    }
    fclose($handle2);

    }
?>

在本地主机上,我的 info.txt 已更新,但在服务器上什么也没有...

4

1 回答 1

1

请使用 ls -l 或 ll 命令检查您的 Web 服务器上的目录,并确保您正在修改的文本文件旁边有一个“rw”。

有关文件权限的更多信息:

正如评论中提到的调试是一个好主意,可以提供更多信息。

Chrome:右键单击并选择“检查元素”,然后单击“控制台”,这应该在运行代码后显示错误

Firefox:安装 firebug http://getfirebug.com

于 2013-02-12T17:19:02.510 回答