与PHP一起使用href(html)标记

与PHP一起使用href(html)标记,php,javascript,html,href,Php,Javascript,Html,Href,我试过: <?php include("delete.php") ?> <?php .... .... .... if($result=mysql_query($sql)) { echo "<table><th>Id</th><th>Name</th><th>Description</th><

我试过:

<?php include("delete.php") ?>
<?php 

   ....
   ....
   ....

if($result=mysql_query($sql))
                {

                    echo "<table><th>Id</th><th>Name</th><th>Description</th><th>Unit Price</th>";
                    while($row = mysql_fetch_array($result))
                    {
                        echo "<tr><td>".$row['Id']."</td><td>".$row['Name']."</td><td>".$row['Description']."</td><td>".$row['UnitPrice']."</td> 
                        <td><a href='delproduct($row[Id])' onclick = 'return MsgOkCancel()'>Delete</a></td></tr>";
                        echo "<br/>";
                    }
                }
?>

以下javascript位于同一页面中:

<script type="text/javascript" language="javascript">
            function MsgOkCancel() {
                                    if (confirm("Are You Sure You Want to Delete?"))
                                     { return true }
                                    else
                                    {return false}
                                   }
        </script> 

函数MsgOkCancel(){
如果(确认(“您确定要删除吗?”))
{返回真值}
其他的
{返回false}
}
其中delproduct是delete.php中的javascript函数 写得像:

<script type="javascript">
function delproduct(Id)
{
    alert('Id '+ Id);
}
<script>

功能产品(Id)
{
警报(“Id”+Id);
}
**点击删除后,**出现确认取消消息框,询问确认

****单击“确定”后,它应该执行delproduct函数中的语句,但它不执行

它会产生如下错误:

找不到对象:在此服务器上找不到请求的URL

有什么问题吗

请帮忙

谢谢

这个怎么样: PHP:

没有方案的URI(例如
http:
)被视为相对URI

您似乎正在寻找
javascript:
(除了创建bookmarklet之外,不应将其用于任何其他用途)

你应该做的事情大致如下:

onclick="if (MsgOkCancel()) { delproduct($row[Id]); return false; } else {  return false; }"
但是,您应该在href中添加链接,但由于这似乎对服务器做出了重大更改,您应该使用POST not GET,因此链接是错误的工具

您可能应该拥有的是:

<form action="/delete" method="post" onsubmit="return delete(this);">
    <input type="hidden" name="id" value="<?php echo htmlspecialchars($row[Id]); ?>">
    <input type="submit" value="Delete">
</form>

更好的方法是,去掉
onsubmit
属性,使用JavaScript分配事件。

我认为您需要不同的设置

首先,如果要在href属性中调用javascript函数,则需要使用
javascript:
作为前缀,例如
href=“javascript:delproduct(…)”
。但不建议从href属性调用javascript。该属性用于URL

我建议您创建一个显示messagebox的函数,并根据用户的操作调用delproduct函数。比如:

function confirmDelProduct( id )
{
    if( msgOkCancel() )
    {
        delproduct( id );
    }
    // return false is meant to stop the href url from being called
    return false;
}
在您的html中:

<a href="#" onclick="return confirmDelProduct(' . $row[ 'id' ] . ')"> ... etc
。。。等

这是一个javascript问题,而不是php问题。
MsgOkCancel()
看起来像什么?
javascript:void(0)
是邪恶的,你的PHP中有语法错误。@David:我知道这被认为是邪恶的,但你知道确切的原因吗?我从来都不明白为什么(或者我忘了)。这不是进步。这不是不引人注目的。它没有给出链接在状态栏中做什么的线索。+1特别是对于渐进增强提示和帖子建议。
function delete(form) {
    if (confirm("Are You Sure You Want to Delete?")) {
        delproduct(form.elements.id.value);
    }
    return false;
}
function confirmDelProduct( id )
{
    if( msgOkCancel() )
    {
        delproduct( id );
    }
    // return false is meant to stop the href url from being called
    return false;
}
<a href="#" onclick="return confirmDelProduct(' . $row[ 'id' ] . ')"> ... etc