从PHP生成的链接有什么问题?

时间:2009-04-06 10:46:29

标签: php jquery ajax

在我的代码中,当我点击时,我只是超链接到PHP函数的锚标记。

我的代码如下。文件another.phpAjax调用,index.php来自jQuery。

another.php

<?php    
    echo " <a href='my.php?action=show&amp;id=".$fid."'
        onclick=\"return  display('".$fid."');\"> ";  
    echo "" .$fname."</a> ";
?>

点击它时,超链接不起作用。

我是否有领先空间的问题?我需要更改我的代码吗?

5 个答案:

答案 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&amp;id=".$fid."' onclick=\"return display('".$fid."');\"/> ";

这将成为:

echo ' <a href="my.php?action=show&amp;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&amp;id='.$fid.'" onclick="return display("'.$fid.'");"> '.$fname.'</a>;

这有用吗?它是否显示链接?