PHP输出含HTML标签时引号冲突问题求助
解决PHP输出HTML时的引号嵌套冲突问题
嘿,别担心!你碰到的确实是新手常遇到的引号嵌套冲突问题——当用PHP的echo输出带JavaScript事件的HTML标签时,单双引号的层级没处理好,就会导致浏览器解析出错,onclick事件自然失效啦。我给你几个简单好用的解决方案,挑你觉得顺手的来:
方法1:转义冲突的引号
在PHP字符串里,如果你用双引号包裹整个HTML代码,那JavaScript里的单引号(或者反过来)需要加**反斜杠**转义,告诉PHP这个引号是内容的一部分,不是字符串的结束标记。
比如这样写就没问题:
// 用双引号包裹echo内容,JavaScript里的单引号转义 echo "<tr class='table_list_content' onclick=\"window.location.href = \'zoom.projects.php«\'\">...</tr>"; // 或者反过来,用单引号包裹echo内容,JavaScript里的双引号不用转义 echo '<tr class="table_list_content" onclick="window.location.href = \'zoom.projects.php«\'">...</tr>';
另外注意:你代码里的&laquo是HTML实体,在JavaScript的href里应该直接写«,否则浏览器会把&解析成&,导致URL变成zoom.projects.php&«,也会影响跳转哦。
方法2:用HEREDOC语法输出大段HTML
这是PHP里专门用来输出多内容的语法,完全不用纠结引号嵌套,写起来和直接写HTML几乎一样,特别舒服:
echo <<<HTML <tr class="table_list_content" onclick="window.location.href = 'zoom.projects.php«'"> <!-- 这里直接写你的表格单元格内容就行,比如<td>...</td> --> </tr> HTML;
⚠️ 注意:结束的HTML;必须单独占一行,前面不能有空格,标识符(这里用的HTML)可以自己随便取,前后保持一致就行。
方法3:直接跳出PHP模式写HTML
如果你的PHP代码和HTML代码是混写的,干脆直接跳出PHP标签,纯写HTML,完全不用处理引号问题,对新手来说最直观:
<?php // 这里是你的PHP逻辑代码 ?> <!-- 直接写HTML,和你平时写静态页面一样 --> <tr class="table_list_content" onclick="window.location.href = 'zoom.projects.php«'"> ... </tr> <?php // 继续写PHP代码 ?>
试试上面的方法,肯定能解决你的跳转问题~
内容的提问来源于stack exchange,提问作者Mathmeeeeen
相关产品推荐
相关产品推荐

