php onclick功能""和''不起作用

时间:2017-10-20 19:12:08

标签: php

我有一个问题。我怎样才能做到这一点?

普通的html(有效):

int
php下的

不起作用!:

<button class="btn" onclick="myFunction('pd')">PD</button>

我是怎么改变这个的? ty guys

4 个答案:

答案 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>';