0

PHP/JavaScript とアクセントに問題があります。アクセントを含む変数を指定すると、JavaScript のコンソールに次のように表示されます。 Uncaught SyntaxError Unexpected Identifier.

PHP:

foreach($credit as $k => $v)
{
    $id = $credit[$k]->id_credit;
    $nom = $credit[$k]->nom_credit;
    $prix = $credit[$k]->prix_credit;
    echo "<a onClick='modification(".$id.",".$nom.",".$prix.");'>" . Image::resize('images/credit/' . $credit[$k]->id_credit . "." . $credit[$k]->format_image_credit,100,100) . "</a>";
}

JavaScript:

function modification(id,nom,prix)
{
    var div = document.getElementById('modifCredit').style.display = 'block';
    alert(id + " " + nom + " " + prix);
}

がなければ$nom、すべて動作します。そして、私が置き換えると:

 $nom = $credit[$k]->nom_credit;

に :

$nom = "example";

私が得た:

Uncaught ReferenceError: 例が定義されていません。

4

2 に答える 2

3

あなたのphpコードは次のような結果になると思います

<a onClick='modification(3, example, 25);'>

これにより、JavaScript インタープリターは「例」が変数の名前であると認識します。JavaScript が文字列として解釈するように、引用符で囲む必要があります。

<a onClick='modification(3, "example", 25);'>

$id と $prix は常に数字であり、数字は引用符で囲んではならず、javascript インタープリターに変数名として表示されません。

$nom にアクセントが含まれている場合に別のエラー メッセージが表示される理由は、アクセント付きの変数名が無効であり、インタプリタが変数が未定義であることを発見する前に無効な識別子を発見するためです。

于 2013-01-31T13:56:13.450 に答える
1

問題は、JavaScript が 'example' name の変数を見つけられないことだと思います。試してみてください

$nom = "'例'";

于 2013-01-31T13:56:46.647 に答える