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

我有 :

未捕获的 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 找不到具有“示例”名称的变量,请尝试

$nom = "'例子'";

于 2013-01-31T13:56:46.647 回答