我有一个问题。我怎样才能做到这一点?
普通的html(有效):
int
php下的不起作用!:
<button class="btn" onclick="myFunction('pd')">PD</button>
我是怎么改变这个的? ty guys
答案 0 :(得分:0)
只需使用onclick="myFunction()"
代替onclick="myFunction('pd')"
,然后您就可以启动该功能
myFunction(){
echo "I am your function";
}
答案 1 :(得分:0)
这不是一个真正的PHP问题,而是如何逃避引号问题。因此,以下示例说明了如何使用JavaScript:
function myFunction(str){
console.log("Button " + str + " clicked");
}
var d = document;
d.g = d.getElementById;
var resuult = d.g("result");
result.innerHTML = '<button class="btn" onclick="myFunction(\'pd\')">PD</button>';
result.innerHTML += '<button class="btn" onclick="myFunction(\'pd\')">PD</button>';
<div id="result"></div>
同样的字符串也适用于PHP,如下所示:
<?php
echo '<button class="btn" onclick="myFunction(\'pd\')">PD</button>';
?>
使用HTML字符串可能很棘手。在这种情况下,每个按钮的字符串使用单引号,而属性用双引号括起来。对于 onclick 事件属性,函数参数必须使用转义单引号以避免错误。
避免错误最好的方法是使用DOM附加按钮元素。此外,如果从按钮标记中删除 onclick 事件属性会更好。因此,您可以创建类似于以下内容的JavaScript:
var d = document;
d.g = document.getElementById;
var result = d.g("result");
var btnNode = d.createElement("button");
var textNode = d.createTextNode("PD");
btnNode.appendChild(textNode);
result.appendChild(btnNode);
btnNode.onclick = function(){
console.log("you clicked me");
};
<div id="result"></div>
如果将JavaScript放在自己的文件中,例如“myPDButton.js”,那么PHP就可以这么简单:
<?php
echo "<script src='myPDButton.js'></script>";
?>
或者,使用 heredoc 语法:
<?php
echo <<<EOT
<script src="myPDButton.js"></script>
EOT;
?>
除非您使用DOM附加此脚本元素:)
PHP中有一个名为KISS的主题(“保持简单......”)是有充分理由的,你可以简化的越多,你的代码就越健壮。
答案 2 :(得分:0)
<?php
echo '<button class="btn" onclick="myFunction(\'pd\')">PD</button>';?>
<script>
function myFunction(){
alert('alert from pd');
}
</script>
答案 3 :(得分:0)
第一次获得如此多的必要答案! 完美而简短的回答来自马克的第二个回答!
echo '<button class="btn" onclick="myFunction(\'pd\')">PD</button>';