4

このjavascript関数を呼び出すと、そのエラーが発生します:

function kickUser(id_userChat){
$.post("chatFuncs.php", { action: "kick", id_user: id_userChat });  
}

この「kickUser」関数は、このように、チャット ボックスに接続しているすべてのユーザーに対して生成されます

$listUsers .= '<img src="imgUsers/'.$DBClass->nomImg($rowUsers['id_user'],$posImg).'" height="'.$heightImg.'" width="'.$widhImg.'"/>
<span class="styleMsg">'.$rowUser['nameUser'].'</span>&nbsp;
<a href="#" class="BtnKick" onClick="kickUser('.$rowUsers['id_user'].')">Kick</a></br>';

アクション「キック」は、chatUsersテーブルからユーザーを削除するデータベースへの単なる更新です

$rowUsers['userName'] の $rowUsers['id_user'] を変更すると、エラーは次のように変わります: ReferenceError: 'userName' が定義されていません(この例のためだけに、'userName' のユーザーの本名を変更しました)。

4

2 に答える 2

16

JavaScript の識別子は数字で始めることはできません。文字またはで始まる必要があります。$_


私はそれがこれから来ていると推測しています:

onclick="kick_user('.$rowUsers['id_user'].')">Kick</a>

文字列を渡す場合は、渡される値を引用符で囲む必要があります。

onclick="kick_user(\"'.$rowUsers['id_user'].'\")">Kick</a>

私はPHPを知らないので、別のエスケープが必要かもしれませんが、これでアイデアが得られるはずです。

于 2013-02-19T20:02:43.320 に答える
1

結果の JavaScript コードは次のようになります。

kickUser(userName)

…そして明らかに js 変数はありませんuserName。代わりに文字列を渡したい:

kickUser('userName');

$rowUsers['userName']したがって、引用符/アポストロフィを出力に追加し、適切にエスケープすることを忘れないでください。$rowUsers['id_user']無効な識別子も出力しているように見えるの場合もまったく同じです。

于 2013-02-19T20:04:24.320 に答える