【问题标题】:Call javascript function with php echo [closed]使用 php echo 调用 javascript 函数 [关闭]
【发布时间】:2013-11-23 09:17:38
【问题描述】:

我为下拉菜单添加了一个搜索框,这是通过 javascript 函数解决的。 因为我用 php 显示表单和框,所以我无法调用 javascript 函数“searchSel():

 echo "<input type=\"text\" id=\"realtxt\" onkeyup="searchSel()"><s";

错误:解析错误:语法错误,意外的 T_STRING,期待 ',' 或 ';'

onkeyup=". searchSel() ." 不起作用

有什么想法吗?

【问题讨论】:

  • 转义你的报价。 onkeyup=\"searchSel()\".
  • 如果您尝试从 PHP 中实际调用 JavaScript 函数 searchSel()(例如,在 onkeyup 事件中具有来自 searchSel() 的输出)......你不能。 PHP在服务器上运行,JS在客户端运行。如果 searchSel() 实际上是 PHP 函数,您将需要 onkeyup=\"" . searchSel() . "\"" ... (引号)
  • ^ 否则,其他人写的关于转义引号的内容都是正确的(诅咒你编辑 cmets 的 5 分钟限制)

标签: javascript php jquery forms


【解决方案1】:

转义引号

echo "<input type=\"text\" id=\"realtxt\" onkeyup=\"searchSel()\">
                                                  ^            ^

你忘了逃跑onkeyup="searchSel()"


最好在外面使用单引号
echo '<input type="text" id="realtxt" onkeyup="searchSel()">'
     ^                                                      ^

【讨论】:

  • 我不确定我是否会提倡在输出中使用字符串文字(例如 echo),因为当您第一次执行 echo '&lt;p&gt;{$sSomeOutput}&lt;/p&gt;' 之类的操作时,它会全部失败 - 授予,在这种情况下是没关系 - 但通常我会坚持使用“正常”字符串输出 shrugs
  • 泰。但是转义函数是不可调用的。调试器然后说: searchSel() 没有定义。但是这个功能已经包含了..
  • @mostworld77 在 JavaScript 中?
  • @mostworld77 在我添加此元素后的末尾定义您的 searchSel() 函数。在页面底部添加功能。
  • searchSel 不需要在页面底部定义。更重要的是,在定义之前调用它的可能性很小。这也是为什么最好使用渐进增强并在 JavaScript 中绑定事件处理程序,而不是在属性中。
【解决方案2】:

试试这个

 echo "<input type=\"text\" id=\"realtxt\" onkeyup=\"searchSel()\">

【讨论】:

    【解决方案3】:

    将字符串放在单引号中,以避免转义双引号:

    echo '<input type="text" id="realtxt" onkeyup="searchSel()"><s';
    

    【讨论】:

      【解决方案4】:

      你可能忘记转义 searchSel()

      echo "<input type=\"text\" id=\"realtxt\" onkeyup=\"searchSel()\">
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-11
        • 1970-01-01
        • 2020-03-24
        • 1970-01-01
        • 2018-07-30
        • 2016-10-17
        • 1970-01-01
        相关资源
        最近更新 更多