我的函数调用不在回声中工作

时间:2016-04-26 06:35:35

标签: javascript php

这是我的php代码:

<div class="box-body" id="chosen-tags">
<?php
$cnt = 1;
for($cnt=1;$cnt<=20;$cnt++){
    echo "<a id='abcd$cnt' style='float:left;'>abcd".$cnt."&nbsp;&nbsp;</a>";
}
?>
</div>


<div class="box-body" id="tags-toggle-content" style="display: none">
<?php
$cnt = 1;
for($cnt=1;$cnt<=20;$cnt++){
    $idd = "abcd".$cnt; 
    echo "<a id='abc$cnt' style='float:left' onclick='add_tagss($idd)'>abc".$cnt."&nbsp;&nbsp;&nbsp; </a>";
}
?>
</div>

这是我的Javascript代码:

<script type="text/javascript">

    function toggle_visibility(id) 
    {
       var f = document.getElementById(id)
       if(f.style.display == 'block')
          f.style.display = 'none';
       else
          f.style.display = 'block';
    }

    function add_tagss()
    {
      var f = document.getElementById("id");
      f.style.display = 'none';

    }

    </script>

我真的认为我的错误在我的回调函数调用中。是否有关于如何在回声中执行函数调用的规则,例如正确使用单引号和双引号。

4 个答案:

答案 0 :(得分:2)

你搞乱单引号和双引号。

每当你认为你搞乱了javascript和PHP时,请打破字符串。

一次性在双引号内回显字符串不是强制性的。

你可以做几个连接来实现同样的目标。

在PHP中编写JavaScript代码时的最佳做法是:

1)查看源代码以确定javascript代码是否已正确编码。当然,查看源代码不会显示AJAX生成的代码。在这种情况下使用Firefox's Inspect Element

2)检查javascript函数的参数是否通过单引号正确传递。

3)在Firefox中,如果PHP编写的javascript代码产生了一些错误,请检查console选项卡。

4)在javascript函数中,使用console.log()检查是否传递了适当的变量。

一些修改:

更改

echo "<a id='abc$cnt' style='float:left' onclick='add_tagss($idd)'>abc".$cnt."&nbsp;&nbsp;&nbsp; </a>";

要:

echo "<a id='".$idd."' style='float:left'" .  "onclick=add_tagss('".$idd."')>abc".$cnt."&nbsp;&nbsp;&nbsp; </a>";

在功能上你没有收到任何参数:

将其更改为:

function add_tagss(id)
    {
      var f = document.getElementById(id);
      f.style.display = 'none';

    }

答案 1 :(得分:-1)

您正在调用pa参数化函数,但其​​定义没有参数,请查找此add_tagss(&#39; param&#39;);

call add_tagss(".$idd."); instead onclick='add_tagss($idd)',定义应该接受参数。希望这对你有帮助。

答案 2 :(得分:-1)

试试这个,在第二个用于lop - 你在锚标记中添加函数调用 - 尝试下面的脚本 - 它将成功调用函数:

for($cnt=1;$cnt<=20;$cnt++)
{
    $idd = "abcd".$cnt;
    echo "<a href='#' id='abc$cnt' style='float:left;' onclick='add_tagss(\"".$idd."\")'>abc".$cnt."&nbsp;&nbsp;&nbsp; </a>";

}

答案 3 :(得分:-1)

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<title></title>
<script src="../../Scripts/jquery-1.9.1.js" type="text/javascript"></script>

<link href="../../Content/Office.css" rel="stylesheet" type="text/css" />
<script src="https://appsforoffice.microsoft.com/lib/1/hosted/office.js" type="text/javascript"></script>

<!-- To enable offline debugging using a local reference to Office.js, use:                        -->
<!-- <script src="../../Scripts/Office/MicrosoftAjax.js" type="text/javascript"></script>  -->
<!-- <script src="../../Scripts/Office/1/office.js" type="text/javascript"></script>  -->

<link href="../App.css" rel="stylesheet" type="text/css" />
<script src="../App.js" type="text/javascript"></script>

<link href="Home.css" rel="stylesheet" type="text/css" />
<script src="Home.js" type="text/javascript"></script>
</head>
<body>


</body>
</html>