在我的代码中,当我点击时,我只是超链接到PHP函数的锚标记。
我的代码如下。文件another.php
由Ajax调用,index.php
来自jQuery。
<?php
echo " <a href='my.php?action=show&id=".$fid."'
onclick=\"return display('".$fid."');\"> ";
echo "" .$fname."</a> ";
?>
点击它时,超链接不起作用。
我是否有领先空间的问题?我需要更改我的代码吗?
答案 0 :(得分:4)
如果“display”函数返回false,则onclick处理程序会使默认超链接功能短路。而不是将onclick设置为“返回显示($ fid)”,只需设置onclick =“display($ fid)”,超链接将始终有效。
如果没有看到您的其余代码或更详细的描述,我无法确定其他问题可能是什么。但这是第一件跳出来的东西。如果元素的事件处理程序返回false,则不会发生常规功能。
答案 1 :(得分:0)
为什么你的第二个echo "" .$fname."</a> ";
???第一个“”根本不必存在
此外,似乎空间不应该在点前面 - 。
答案 2 :(得分:0)
<?php
echo '<a href="my.php?action=show&id='.$fid.'"
onclick="return display(\''.$fid.'\');">'.$fname.'</a>';
?>
这应该可以工作我总是使用'用于PHP字符串而且“在HTML部分中使它更容易阅读:)
更大的错误是你的链接看起来像这样:Bla因为你自己关闭了它可能显示了一个没有值的链接
答案 3 :(得分:0)
我无法弄清楚你想用一个锚标签内的所有内容实现什么...对onclick事件做出反应并将浏览器重定向到另一个位置?我了解到,调整<a>
标记功能的简便方法是:
<a href="javascript:doStuffHere()" id="...">...</a>
因此,您不要将onclick
与强制href
混合使用。尝试重建您的链接就是这样。
至于你的PHP风格,当你使用双引号来分隔字符串时,你不必打破引号来插入变量内容。你可以这样:
<?php
$fid = 'myId';
$fname = 'my link name';
echo "<a id=\"$fid\" href=\"javascript:doStuff()\">$fname</a>";
?>
答案 4 :(得分:0)
与其他人提到的一样,它可能是JavaScript返回的东西。因为我不能说PHP代码有什么问题导致问题。
但是,我确实有一些技巧可以使您的代码更容易上手。
我对处理字符串的第一个建议是永远不要强迫自己逃避'或'。通过改变你的引用风格,你可以更容易地阅读你的代码并更容易地找到由引号引起的问题。
echo " <a href='my.php?action=show&id=".$fid."'
onclick=\"return display('".$fid."');\"/> ";
这将成为:
echo ' <a href="my.php?action=show&id='.$fid.'"
onclick="return display("'.$fid.'");"> '.$link_title.'</a>;
实际上,在输入时,我注意到你没有得到超链接,因为你没有完成锚标记。更具体地说,您使用/在早期终止它。在上面的示例中,我添加了:
.$link_title.'</a>
这应该可以解决问题。
第二个建议:
echo "" .$fname."</a> ";
可以像输入一样轻松输入:
echo $fname.'</a> ';
建议对服务器不需要额外工作的字符串使用'而不是',并且不需要前导“”。
编辑:
echo ' <a href="my.php?action=show&id='.$fid.'" onclick="return display("'.$fid.'");"> '.$fname.'</a>;
这有用吗?它是否显示链接?