javascript - PHP echo方法输出的字符串参数不能传递给javascript函数
问题描述
我有一种情况,我必须将 php 变量作为函数中的参数传递,以便稍后在 javaScript 中使用,但字符串参数不起作用,只有整数起作用。
<?php
$product = apples;
$quantity = 5;
echo '<button onclick = "carryOut('.$quantity.','.$product.')">Click me</button>';
?>
<script>
function carryOut(q,p){
alert(q);
alert(p);
}
</script>
当我把它写成
onclick = "carryOut('.$quantity.',\'apples\')"
它的工作,但这不是我想要做的。
解决方案
您的原始代码将(假设$product = apples;
应该是$product = "apples";
为了避免 PHP 语法错误)输出:
<button onclick = "carryOut(5,apples)">Click me</button>
这将导致 JS 错误,因为apples
它是字符串文字,因此需要在引号内。
所以你只需要在你期望的值周围添加一些(转义的)引号将是一个字符串:
$product = "apples";
$quantity = 5;
echo '<button onclick = "carryOut('.$quantity.',\''.$product.'\')">Click me</button>';
演示:http ://sandbox.onlinephpfunctions.com/code/d3465133e571186d423e5433b71033ea1905a306
这将输出
<button onclick = "carryOut(5,'apples')">Click me</button>
在生成的 JavaScript 中正确引用了硬编码的“apples”字符串。
这在网页中使用时效果很好。演示:
function carryOut(q, p) {
alert(q);
alert(p);
}
<button onclick = "carryOut(5,'apples')">Click me</button>
推荐阅读
- rust - 是否可以在 rust 中编写动态的“抽象/共享”特征
- python - 使用ajax和flask上传不同扩展名的文件
- python - Pandas 获取每组内的最大值,按组总和
- python - 使用beautifulsoup(未知的url类型)使用python遍历用于网络抓取的url列表
- python - 从没有循环的计数器列表中更新计数器?
- user-interface - Azure-Devops - 查看我参与的所有 PR 的 URL?
- node.js - 按索引更新 Mongodb 文档中的 1 个或多个数组项
- r - 如何使 R 中的输出表结果以更美观的格式显示?
- java - 我们可以通过java中的不同字段对相同的对象进行分组吗?
- keycloak - Keycloak得到空的登录页面,即没有用户名和密码表单