2014-02-18 107 views
0

不叫我过去,我在网上找到了一个代码,然后改变一个小东西:功能通过JavaScript在HREF

<script type="text/javascript"> 
    var foodList = []; 

    function addToFood (addFood) { 
     alert(addFood); 
     //foodList.push(addFood); 
     //for (i = 0; i < foodList.length; i++) { 
     // var newFood = "<a href='#' onClick='removeRecord(" + i + ");'>X</a> " + foodList[i] + " <br>"; 
     //}; 
     //document.getElementById('foods').innerHTML += newFood; 
    } 
</script> 

此时此刻我只想提醒上addToFood参数。该功能应该被称为:

echo "<a href='javascript:addToFood(". $zeile1['TITLE'] .");' class='band-head'>Add</a>"; 

此行显示了如何添加一个<a>与在href的JavaScript。 php渲染正确的线,但addToFood永远不会被调用。

看看在线演示:http://anthraxx.sytes.net/也许它可以帮助你更多然后我。 我通过谷歌浏览器得到的错误:Uncaught SyntaxError: Unexpected identifier但是,只是无法找出意外的标识符。

感谢

+0

你有一个JavaScript错误。看看JavaScript,不要看看生成JavaScript的PHP。找出问题和你需要改变什么来解决它的JS,*然后*看看PHP。 – Quentin

+0

echo'Add'; 替换 – Netzach

回答

4

你需要用一个字符串中的$zeile1['TITLE'],因为这样的:

echo "<a href='javascript:addToFood(\"". $zeile1['TITLE'] ."\");' class='band-head'>Add</a>"; 

你可以看到,我的左括号后添加转义引号\",结束一个,在之前JS调用。 否则它会尝试将一个变量传递给函数,而不是字符串。

为什么逃脱?这是因为你用PHP回声。如果我没有逃避这个引用,那么PHP会将它解释为我正在结束字符串,这不是我们想要的。我想把引号放在那里作为内联代码。

+0

哦,上帝大禹 - 谢谢你的问题;) – DominikAngerer

1

只是将范围限定在' '" "之间,当您不对范围String进行操作时,javascript将其读取为Var。

1

你需要躲避$ zeile1 [“标题”],这就是真实的,你可以做到这一点通过以下行 -

echo "<a href='javascript:addToFood(\"". $zeile1['TITLE'] ."\");' class='band-head'>Add</a>"; 

这是工作。

1

试试这个

echo '<a href="javascript:addToFood(\''.$zeile1['TITLE'].'\');" class="band-head">Add</a>'; 
1

替换:

echo "<a href='javascript:addToFood(". $zeile1['TITLE'] .");' class='band-head'>Add</a>"; 

有了:

echo "<a href='javascript:addToFood(\"". $zeile1['TITLE'] ."\");' class='band-head'>Add</a>";