2011-06-02 47 views
1

你好,我有一個PHP代碼,通過回聲與參數「TXT」通過在JavaScript中

echo "<div onclick=javascript:expand('$hint1')>$valueX</div>"; 


function expand(txt) 
{ 

document.getElementById("targetDiv").value=txt; 

} 

我的問題是,這個腳本工作只有在「$調用JavaScript函數expand(txt)空白字符串hint1'是一個沒有空格的字符串,例如,如果$ hint =「car」一切正常,但是如果$ hint =「red car」則JavaScript不起作用。

任何幫助將不勝感激!謝謝!

+0

這是什麼做的正是?例如,以「汽車」或紅色汽車的文本更新DIV?請詳細說明一下...... – Flukey 2011-06-02 20:36:39

+1

什麼是*確切的錯誤*或*症狀*?和* HTML看起來像什麼*? (只有生成的HTML是「錯誤的」,PHP纔是相關的;使用這個將很容易顯示出錯的地方--HTML驗證器可以幫助眼睛失敗。) – 2011-06-02 20:38:42

回答

1

改變這一行:

echo "<div onclick=javascript:expand('$hint1')>$valueX</div>"; 

對此:

echo "<div onclick=\"expand('$hint1')\">$valueX</div>"; 

的onclick事件必須是在「」和你並不需要的JavaScript:-label(但最後一個不應該有所作爲,它只是毫無意義的)

4

您的HTML存在問題。

你的PHP輸出:

<div onclick=javascript:expand('red car')>sometext</div> 

這顯然打破。

另外,javascript:在這裏是多餘的;這不是一個URI,而是一個Javascript事件處理程序。

讓你的PHP輸出這個:

<div onclick="expand('red car')">sometext</div> 

我會離開的細節作爲練習讀者。

0

使用innerHTML屬性更改的內容div

document.getElementById("targetDiv").innerHTML = txt; 

另外,還要確保你正確報價在您的標記屬性。

echo "<div onclick=\"expand('$hint1')\">$valueX</div>"; 

JS注:如果你真的想追加一些內容元素,你最好用textNode

function expand(el, text) { 
    el.appendChild(document.createTextNode(text)); 
} 

// and your markup becomes: 
echo "<div onclick=\"expand(this, '$hint1')\">$valueX</div>"; 
+1

您不需要將「javascript:」聲明作爲onclick已經是一個JS事件處理... – Flukey 2011-06-02 20:39:51

+0

@Jamie - 正確,但它也不會傷害。 :) – galambalazs 2011-06-02 20:41:21