【问题标题】:echoing a jquery animation function with php用 php 回显 jquery 动画函数
【发布时间】:2010-12-03 08:42:40
【问题描述】:

我正在尝试使用 php 来回显这个 jquery 函数。基本上,如果脚本检测到表单的某个字段未填写,那么它将回显此内容并使输入文本框变为红色。

当它没有被回显时它工作正常。

echo('
<script type="text/javascript">
    $(document).ready(function() { 
        $(\'input\').animate({backgroundColor:\"#F00\"},200);
    });
</script>
');

有什么想法吗?

【问题讨论】:

  • 不要问为什么它不起作用。查看它输出的内容并询问为什么它与有效的代码不同。如果你运行 PHP 并查看生成的输出,它不起作用的原因就很明显了。
  • 可能是回声没有运行。确保它位于适当标签 (
  • @Stefan — 运行 echo 的输出有很大的粗体 JS 语法错误。
  • @Black Magic:请不要将括号用于echo 等语言结构。这被认为是不好的做法。
  • @David Dorward-现在工作正常,介意告诉我 JS 语法错误吗?

标签: php jquery forms echo


【解决方案1】:

当字符串在单引号内时,我认为您不必转义引号。 PHP 不会解析字符串,它会按字面意思输出。

【讨论】:

  • 哦,就是这样。这是我第一次使用转义符。
【解决方案2】:

你在字符串转义上做得过火了。为简单起见,只需在回显字符串周围使用单引号,并在其中使用双引号。比如:

echo('
<script type="text/javascript">
    $(document).ready(function() { 
        $("input").animate({backgroundColor: "#F00"}, 200);
    });
</script>
');

当你echoing 东西时,确实有些情况下你需要转义引号,但大多数时候你可以通过使用不同类型的引号来避免它。例如,我永远不会明白为什么人们仍然会做这样的事情:

echo "<input type=\"text\" name=\"username\">";

相对

echo '<input type="text" name="username">';

当你不得不修改它时,这会让你的生活变得更轻松。

希望这会有所帮助!

【讨论】:

  • 那么单引号和双引号可以互换吗?
  • 不一定。以 proEvil 为例。如果您要在字符串末尾添加\n,通过将其括在单引号中,它将按字面意思输出,而不是使用双引号将其按预期输出(即换行符)。
【解决方案3】:

你不应该在那里使用\",而应该使用"

【讨论】:

    【解决方案4】:

    此外:十六进制颜色值不是可用于 animate() 的数值。 这样,通过从双引号中删除反斜杠来修复错误,但您的动画不会显示任何效果。

    【讨论】:

      【解决方案5】:

      我没有测试它,但尝试一下:

      $nl = "\n";
      echo '<script type="text/javascript">'.$nl;
      echo '    $(document).ready(function() {'.$nl;
      echo '        $("input").animate({backgroundColor:"#F00"},200);'.$nl;
      echo '    });'.$nl;
      echo '</script>'.$nl;
      

      $nl="\n" 仅用于换行(我更喜欢在回显中使用单引号,因此 php 不必解析内容 - 只需回显)。

      【讨论】:

        猜你喜欢
        • 2013-06-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-18
        相关资源
        最近更新 更多