2011-06-02 44 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