Javascript php 中嵌入的警报功能在解释客户端消息时存在问题
Javascript alert function embedded within php has issue in interpreting the message on the client side
我正在尝试使用 php 代码中的 javascript 警报功能在客户端显示消息。
//Show concept detail
public function showConceptDetail($concept){
$msg ="";
switch ($concept) {
case 'class':
$msg = 'Hey, I am single line with spaces';
break;
default:
break;
}
return "alert('".$msg."')";
}
public function showListConcept(){
$a= '$this->showConceptDetail()';
$list = <<<LIST
<ul>
<li><a href="#" onClick= {$this->showConceptDetail('class')} >Class </a></li>
<li><a href="#">Object </a></li>
<li><a href="#">Member Variable </a></li>
<li><a href="#">Member function</a></li>
<li><a href="#">Inheritance</a></li>
<li><a href="#">Parent class</a></li>
<li><a href="#">Child Class</a></li>
<li><a href="#">Polymorphism</a></li>
<li><a href="#">Overloading</a></li>
<li><a href="#">Data Abstraction</a></li>
<li><a href="#">Encapsulation</a></li>
<li><a href="#">Constructor</a></li>
<li><a href="#">Destructor</a></li>
</ul>
LIST;
echo "List of POO concepts: ".$list;
}
当我尝试使用函数 showListConcepts 时:
$a = new POOConcept();
$a->showListConcept();
每当我检查源时,我每次都会得到一个奇怪的输出:
<a href="#" onclick="alert('Class" −="" this="" is="" a="" programmer-defined="" data="" type,="" which="" includes="" local="" functions="" as="" well="" data.="" you="" can="" think="" of="" class="" template="" for="" making="" many="" instances="" the="" same="" kind="" (or="" class)="" object.')="">Class </a>
警报功能消息中的每个 space 由 ="" 交换;我不明白这是怎么回事。
我复制并粘贴了它,运行 您提供的代码。没有问题。我确实注意到 here/now 文档没有用引号引起来。 (http://php.net/manual/en/language.types.string.php)除此之外似乎没有问题。肯定还有别的问题。还有什么正在处理输出?您的代码或注释中是否有输出消息?
这是我名为 index.php 的完整示例文件,后跟命令行中的输出。
<?php
class abc
{
//Show concept detail
public function showConceptDetail($concept){
$msg ="";
switch ($concept) {
case 'class':
$msg = 'Hey, I am single line with spaces';
break;
default:
break;
}
return "alert('".$msg."')";
}
public function showListConcept(){
$a= '$this->showConceptDetail()';
$list = <<<LIST
<ul>
<li><a href="#" onClick= {$this->showConceptDetail('class')} >Class </a></li>
<li><a href="#">Object </a></li>
<li><a href="#">Member Variable </a></li>
<li><a href="#">Member function</a></li>
<li><a href="#">Inheritance</a></li>
<li><a href="#">Parent class</a></li>
<li><a href="#">Child Class</a></li>
<li><a href="#">Polymorphism</a></li>
<li><a href="#">Overloading</a></li>
<li><a href="#">Data Abstraction</a></li>
<li><a href="#">Encapsulation</a></li>
<li><a href="#">Constructor</a></li>
<li><a href="#">Destructor</a></li>
</ul>
LIST;
echo "List of POO concepts: ".$list;
}
}
$abc = new abc();
$abc->showListConcept();
?>
然后使用命令行。
sandbox>php index.php
List of POO concepts: <ul>
<li><a href="#" onClick= alert('Hey, I am single line with spaces') >Class </a></li>
<li><a href="#">Object </a></li>
<li><a href="#">Member Variable </a></li>
<li><a href="#">Member function</a></li>
<li><a href="#">Inheritance</a></li>
<li><a href="#">Parent class</a></li>
<li><a href="#">Child Class</a></li>
<li><a href="#">Polymorphism</a></li>
<li><a href="#">Overloading</a></li>
<li><a href="#">Data Abstraction</a></li>
<li><a href="#">Encapsulation</a></li>
<li><a href="#">Constructor</a></li>
<li><a href="#">Destructor</a></li>
</ul>
再想想:
如果您在警报周围加上引号会怎样? Html 如果没有引号,解析器会自动添加 =""。
onClick="{$this->showConceptDetail('class')}"
我正在尝试使用 php 代码中的 javascript 警报功能在客户端显示消息。
//Show concept detail
public function showConceptDetail($concept){
$msg ="";
switch ($concept) {
case 'class':
$msg = 'Hey, I am single line with spaces';
break;
default:
break;
}
return "alert('".$msg."')";
}
public function showListConcept(){
$a= '$this->showConceptDetail()';
$list = <<<LIST
<ul>
<li><a href="#" onClick= {$this->showConceptDetail('class')} >Class </a></li>
<li><a href="#">Object </a></li>
<li><a href="#">Member Variable </a></li>
<li><a href="#">Member function</a></li>
<li><a href="#">Inheritance</a></li>
<li><a href="#">Parent class</a></li>
<li><a href="#">Child Class</a></li>
<li><a href="#">Polymorphism</a></li>
<li><a href="#">Overloading</a></li>
<li><a href="#">Data Abstraction</a></li>
<li><a href="#">Encapsulation</a></li>
<li><a href="#">Constructor</a></li>
<li><a href="#">Destructor</a></li>
</ul>
LIST;
echo "List of POO concepts: ".$list;
}
当我尝试使用函数 showListConcepts 时:
$a = new POOConcept();
$a->showListConcept();
每当我检查源时,我每次都会得到一个奇怪的输出:
<a href="#" onclick="alert('Class" −="" this="" is="" a="" programmer-defined="" data="" type,="" which="" includes="" local="" functions="" as="" well="" data.="" you="" can="" think="" of="" class="" template="" for="" making="" many="" instances="" the="" same="" kind="" (or="" class)="" object.')="">Class </a>
警报功能消息中的每个 space 由 ="" 交换;我不明白这是怎么回事。
我复制并粘贴了它,运行 您提供的代码。没有问题。我确实注意到 here/now 文档没有用引号引起来。 (http://php.net/manual/en/language.types.string.php)除此之外似乎没有问题。肯定还有别的问题。还有什么正在处理输出?您的代码或注释中是否有输出消息?
这是我名为 index.php 的完整示例文件,后跟命令行中的输出。
<?php
class abc
{
//Show concept detail
public function showConceptDetail($concept){
$msg ="";
switch ($concept) {
case 'class':
$msg = 'Hey, I am single line with spaces';
break;
default:
break;
}
return "alert('".$msg."')";
}
public function showListConcept(){
$a= '$this->showConceptDetail()';
$list = <<<LIST
<ul>
<li><a href="#" onClick= {$this->showConceptDetail('class')} >Class </a></li>
<li><a href="#">Object </a></li>
<li><a href="#">Member Variable </a></li>
<li><a href="#">Member function</a></li>
<li><a href="#">Inheritance</a></li>
<li><a href="#">Parent class</a></li>
<li><a href="#">Child Class</a></li>
<li><a href="#">Polymorphism</a></li>
<li><a href="#">Overloading</a></li>
<li><a href="#">Data Abstraction</a></li>
<li><a href="#">Encapsulation</a></li>
<li><a href="#">Constructor</a></li>
<li><a href="#">Destructor</a></li>
</ul>
LIST;
echo "List of POO concepts: ".$list;
}
}
$abc = new abc();
$abc->showListConcept();
?>
然后使用命令行。
sandbox>php index.php
List of POO concepts: <ul>
<li><a href="#" onClick= alert('Hey, I am single line with spaces') >Class </a></li>
<li><a href="#">Object </a></li>
<li><a href="#">Member Variable </a></li>
<li><a href="#">Member function</a></li>
<li><a href="#">Inheritance</a></li>
<li><a href="#">Parent class</a></li>
<li><a href="#">Child Class</a></li>
<li><a href="#">Polymorphism</a></li>
<li><a href="#">Overloading</a></li>
<li><a href="#">Data Abstraction</a></li>
<li><a href="#">Encapsulation</a></li>
<li><a href="#">Constructor</a></li>
<li><a href="#">Destructor</a></li>
</ul>
再想想: 如果您在警报周围加上引号会怎样? Html 如果没有引号,解析器会自动添加 =""。 onClick="{$this->showConceptDetail('class')}"