1

ajaxを使用してphpファイルにリクエストを送信するスクリプトがあります。phpファイルはtxtファイルを更新する必要があります。私のローカルホストではスクリプトは正常に機能しますが、Webサーバーでは機能しません。

テスト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 に答える