2016-12-15 30 views
0

私はいくつかのボタンを生成するphpループを持っています。各ボタンは特定のdivの内容を変更し、ajaxリクエストを使用してデータベース内のいくつかのものを更新します。 Ajaxリクエストを実行します。問題は、文字列と連結すると、関数内のDiv IDをパラメータとして渡すことができないことです。私が$ TickCrossDiv = $ iを書いているときだけ、それは働いている(Div IDとして数字を使うときだけ)。ここでphp変数をjavascript関数に渡す

は私のコードです:ここでは

for($i=0;$i<count($PlanningArray);$i++){ 

     $TickCrossDiv = 'tickCrossDiv'.$i; 

    echo "<button onclick=\"SetActDone(
     ".$PlanningArray[$i]'PlanID'].", 
     ".$PlanningArray[$i]['ActID'].", 
     ".$TickCrossDiv.")\" > 
     Mark as done</button>" 
} 

は関数である。

function SetActDone(PlanID,ActID,DivID) 
    { 
     $.ajax({ 

      type: "POST", 
      url: 'testAjax.php', 
      data: {PlanID:PlanID, ActID:ActID}, 
      success: function(data) { 

       $("#" + DivID).html('<p>Status: Done</p> <i style="color:greenyellow; " class="fa fa-check-circle fa-2x"></i>'); 
      } 
     }); 
    } 

私はエラーを取得しています:

不明なエラー:構文エラー、認識できない表現:#object HTMLDivElementを

答えて

1

$PlanningArray[$i][...]の値がわからず私は確かに言うことができません。しかし、ほとんどの場合、エコーされた変数を引用符で囲む必要があります。これは数字がなぜ機能するのかを説明し、文字列ではなく整数として扱われます。私は、彼らが引用符でラップする必要はありませんので、$PlanningArray[$i]['PlanID']$PlanningArray[$i]['ActID']も整数であることを推測している

for($i=0;$i<count($PlanningArray);$i++){ 

    $TickCrossDiv = 'tickCrossDiv'.$i; 

    echo "<button onclick=\"SetActDone(
     ".$PlanningArray[$i]['PlanID'].", 
     ".$PlanningArray[$i]['ActID'].", 
     '".$TickCrossDiv."')\" > 
     Mark as done</button>" 

}

:これを試してみてください。私もこの行のタイプミス固定

:あなたのコードが動作する場合

$PlanningArray[$i]'PlanID'] 

を、そのタイプミスは、おそらくあなたの本当のスクリプトではありません。

+0

ありがとうございました!!! $ TickCrossDivを引用符で囲み、$ PlanningArray [$ i] ['PlanID']と$ PlanningArray [$ i] ['ActID']は整数です –

関連する問題