2013-01-31 34 views
0

我的PHP/JavaScript和口音有問題。當我給一個包含重音的變量時,JavaScript的控制檯會說:Uncaught SyntaxError意外標識符。Accent/PHP/Javascript/Uncaught語法錯誤意外標識符

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: example is not define.

+1

您發佈的代碼是PHP還是JavaScript?目前尚不清楚哪一個,第一個foreach看起來像PHP,而且這個函數看起來像JavaScript。這是怎麼回事? XD – Seer

+0

在參數周圍添加引號:'「「' – hsan

回答

3

我想你的PHP代碼的結果類似

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

這使得javascript解釋器認爲「示例」是th變量的名稱。你需要用引號括起來,以便JavaScript將它解釋爲一個字符串。

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

我假設的$ id和$大獎賽總是數字,數字不應該被引用,並不會出現變量名,JavaScript解釋器。

當$ nom包含重音時,您獲得不同錯誤消息的原因是具有重音的變量名無效,並且解釋器在發現該變量未定義之前發現該無效標識符。

+0

非常感謝!自2天以來我一直堅持這一點。 – user2029216

1

我認爲這個問題是JavaScript無法找到「示例」名稱變量,嘗試

$ NOM =「‘例如’」;

相關問題