2010-12-03 66 views
1

我想回声这个jQuery功能,用PHP。基本上,如果脚本检测到没有填充表单的字段,则会回显此内容并使输入文本框变为红色。回声jQuery动画功能与PHP

当它没有被echo'd时它工作正常。

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

有什么想法吗?

+4

不要问为什么它不起作用。看看它输出的内容,并询问为什么这与可行的代码不同。如果你运行PHP并查看生成的输出,那么它不起作用的原因变得非常明显。 – Quentin 2010-12-03 08:44:23

+0

机会是回声没有得到运行。确保它位于相应标签(<?php)等的PHP文件中。与@David Dorward一样,您将不得不自己调试它。 – 2010-12-03 08:45:51

+0

@Stefan - 运行该回声的输出具有大而粗的JS语法错误。 – Quentin 2010-12-03 08:46:57

回答

2

我不认为当字符串在单引号内时,你不必逃避你的引号。 PHP不会解析字符串,它会直接输出。

0

你不应该使用\"那里,只是"

1

你过这样做的字符串逃脱。为了简单起见,只需在回显字符串周围使用单引号,并在其中使用双引号。喜欢的东西:

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

当你echo荷兰国际集团的东西,确实有一些情况下,当你需要逃跑的报价,但大部分的时间,你可以简单地通过使用不同类型的报价摆脱它。例如,我永远不会得到它,为什么人们仍然这样做:

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

,而不是

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

,让您的生活轻松许多,当你需要修改它。

希望这会有所帮助!

-1

我没有测试,但尝试:

$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”是只为换行符(我更喜欢使用singlequotes的回声,所以PHP没有解析内容 - 只是回声了)。

0

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