Accent / PHP / Javascript / uncatch SyntaxError 意外标识符

Accent / PHP / Javascript / Uncaught SyntaxError Unexpected Identifier

本文关键字:意外 标识符 SyntaxError Javascript PHP Accent uncatch      更新时间:2023-09-26

我的PHP/JavaScript和口音有问题。当我给出一个包含重音的变量时,JavaScript 的控制台说:未捕获的语法错误意外标识符。

.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";

我得到了 :

捕获的引用错误:未定义示例。

我认为你的php代码会产生类似的东西

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

这使得 JavaScript 解释器相信"example"是变量的名称。您需要将其括在引号中,以便javascript将其解释为字符串。

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

我假设$id和$prix总是数字,数字不应该被引号,也不会作为变量名称出现在javascript解释器中。

当$nom包含重音符号时收到不同错误消息的原因是,带有重音符号的变量名称无效,并且解释器在发现变量未定义之前发现无效的标识符。

我认为问题是JavaScript找不到具有"示例"名称的变量,请尝试

$nom ="示例";