Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript函数名中的PHP_Php_Javascript_Function_Onclick - Fatal编程技术网

javascript函数名中的PHP

javascript函数名中的PHP,php,javascript,function,onclick,Php,Javascript,Function,Onclick,这就像人们想象的那样: <script> function test() {alert("add to cart was triggered!");} </script> <img src="images/add-to-cart.png" width="143" height="45" onclick="test()"> 函数测试(){alert(“已触发添加到购物车!”);} 但是:这并不能-(PHP正确生成代码,但在提供给浏览器时不会触发javas

这就像人们想象的那样:

<script>
function test() {alert("add to cart was triggered!");}
</script>

<img src="images/add-to-cart.png" width="143" height="45" onclick="test()">

函数测试(){alert(“已触发添加到购物车!”);}
但是:这并不能-(PHP正确生成代码,但在提供给浏览器时不会触发javascript函数)


函数(){alert(“已触发添加到购物车!”);}
()">
当我查看硬编码版本生成的源代码和PHP生成的版本时,它们是相同的,如下所示:

<script>
function 1prodadd()
{alert("add to cart was triggered!");}
</script>
<img src="images/add-to-cart.png" width="143" height="45" onclick="1prodadd()">

函数1prodadd()
{警报(“已触发添加到购物车!”);}

为什么PHP生成的函数名不再作为函数运行?因为我看不到源代码中有什么不同,所以它看不到我直接编写的代码与PHP生成的代码之间有什么不同。请提供任何帮助。

JavaScript函数名不能以数字开头

也就是说:

函数的名称:

  • 必须以字母或下划线开头
  • 可以包含字母、数字和下划线的任意组合
  • 不能包含空格
  • 不能包含特殊字符

JavaScript函数名不能以数字开头

也就是说:

函数的名称:

  • 必须以字母或下划线开头
  • 可以包含字母、数字和下划线的任意组合
  • 不能包含空格
  • 不能包含特殊字符

Javascript函数名必须以类似于Javascript变量的字母开头。请查看

函数命名规则与函数命名规则类似 变量。第一个字符必须是字母;其余字符必须是 字符可以包括字母、数字、破折号和下划线。否 允许使用其他字符,包括空格。如变量, 函数名区分大小写


Javascript函数名必须以类似于Javascript变量的字母开头。请查看

函数命名规则与函数命名规则类似 变量。第一个字符必须是字母;其余字符必须是 字符可以包括字母、数字、破折号和下划线。否 允许使用其他字符,包括空格。如变量, 函数名区分大小写


我建议在脚本生成的函数名前面加一个美元符号或下划线;这些字符可以在标识符中的任何位置使用(包括开始)

旧的ECMAScript定义声明它们是为机器生成的变量名保留的,但该声明在5.1中已被削弱:

本标准规定了特定的字符添加:在标识符名称中的任何位置都允许使用美元符号($)和下划线(\)


函数$(){alert(“已触发添加到购物车!”);}
()">

这可以确保变量始终以有效字符开头,您甚至可以使用以数字开头的变量,例如,
$0
是有效变量。

我建议在脚本生成的函数名前面加上美元符号或下划线;这些字符可以在标识符中的任何位置使用(包括开始)

旧的ECMAScript定义声明它们是为机器生成的变量名保留的,但该声明在5.1中已被削弱:

本标准规定了特定的字符添加:在标识符名称中的任何位置都允许使用美元符号($)和下划线(\)


函数$(){alert(“已触发添加到购物车!”);}
()">

这可以确保变量始终以有效字符开头,甚至可以使用以数字开头的变量,例如,
$0
是一个有效变量。

如果需要用PHP生成函数名,那就错了。你能解释一下为什么你认为这是必要的吗?@minitech循环了一系列的i在数据库中,为每个项目生成一个唯一的表单。同时还生成一个匹配函数。这样onclick最终将触发
document..submit();
,并将该唯一表单发送给处理POST数据的PHP-这正是购物车的设计方式,所以我一直在尝试这样做。(因为脚本不能在不使用AJAX的情况下触发PHP函数,我对实现AJAX一无所知)你不是真的被困在这样的实现中。为什么不给每个表单一个类,给每个图像一个类,并在每个提交其父表单的图像上设置相同的点击处理程序呢?@minitech我刚进入PHP几个星期,所以我知道的唯一类引用是CSS。现在假设你不是这个意思,你能给我一个例子说明你的引用吗ring to?我实际上指的是CSS类。你熟悉JavaScript吗?如果你需要用PHP生成函数名,那你就错了。你能解释一下为什么你认为这是必要的吗?@minitech在数据库中的一系列项目中循环,会为每个项目生成一个唯一的表单。还会生成一个匹配的函数。因此onclick最终将触发
document..submit();
,并将该唯一表单发送给处理POST数据的PHP——这正是购物车的设计方式,因此我一直在尝试这样做。(因为脚本不能在不使用AJAX的情况下触发PHP函数,我对实现AJAX一无所知)你不是真的被困在这样的实现中。为什么不给每个表单一个类,给每个图像一个类,并在每个提交其父表单的图像上设置相同的点击处理程序呢?@minitech我刚进入PHP几个星期,所以我知道的唯一类引用是CSS。现在假设你不是这个意思,你能给我一个例子说明你的引用吗我指的是CSS类。你对JavaScript很了解吗?是的,你完全正确。JS函数不会
<script>
function 1prodadd()
{alert("add to cart was triggered!");}
</script>
<img src="images/add-to-cart.png" width="143" height="45" onclick="1prodadd()">
<script>
function $<?= $prodadd ?>() { alert("add to cart was triggered!");}
</script>

<img src="images/add-to-cart.png" width="143" height="45" onclick="$<?=$prodadd?>()">