Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
结合PHP的JavaScript警报框 echo”“;_Php_Javascript - Fatal编程技术网

结合PHP的JavaScript警报框 echo”“;

结合PHP的JavaScript警报框 echo”“;,php,javascript,Php,Javascript,以上是我试图使用的代码。每次它什么也不做,我看不出如何使用“适当的”JavaScript方法。原因是什么; echo "<td><a href='delete.php?id=$row[id]&&category=$a' onclick='return confirm(\'are you sure you wish to delete this record\');'>delete</a></td>"; 使用Firefox的HTM

以上是我试图使用的代码。每次它什么也不做,我看不出如何使用“适当的”JavaScript方法。原因是什么;
echo "<td><a href='delete.php?id=$row[id]&&category=$a' onclick='return confirm(\'are you sure you wish to delete this record\');'>delete</a></td>";

使用Firefox的HTML语法突出显示对您有利。:-)

使用GET方法来更改状态也是一个坏主意-请查看关于何时使用GET和何时使用POST()的指导原则。

我认为$row[id]在echo语句中的计算不正确。试试这个:

echo "<td><a href='delete.php?id=$row[id]&&category=$a' onclick='return confirm(&quot;are you sure you wish to delete this record&quot;);'>delete</a></td>";

然后,您的onclick方法可以是
返回confirm\u delete()

,如果您坚持使用echo,则:

function confirm_delete() {
    return confirm('Are you sure you want to delete this record?');
}
echo”“;
--因为转义是从php解释器处理的!-)

另一种解决方案:

echo "<td><a href='delete.php?id=$row[id]&&category=$a' onclick='return confirm(\\'are you sure you wish to delete this record\\');'>delete</a></td>";
echo';
我将双引号改为单引号,反之亦然。然后我对变量进行了浓缩,因此PHP不需要计算


此外,我不确定onclick上的返回是否会在用户单击no时阻止链接被“单击”。

以下是我用于相同类型内容的方法

我不回显/打印它,我将把html放在?>html之间
echo '<td><a href="delete.php?id=' . $row[id] . '&category=' . $a . '" onclick="return confirm(\'are you sure you wish to delete this record?\');'>delete</a></td>';

?>/只是一个建议,您使用的是框架吗

我使用MooTools,然后简单地将这个脚本包含在HTML中

确认删除.js

?> <td><a href="?mode=upd&id=<?= $row[id] ?>&table=<?= $table ?>">Upd</a> / <a href="?mode=del&id=<?= $row[id] ?>&table=<?= $table ?>" onclick="return confirm('Are you sure you want to delete?')">Del</a></td> <?php

它所做的只是查找带有class=“confirm\u delete”的任何“a”标记,并附加与脚本相同的代码,但我发现它更易于使用。它还向地址添加了一个确认变量,这样,如果关闭了JavaScript,您仍然可以将它们发送到带有确认提示的屏幕。

您应该尽量将JavaScript与HTML分开。最初输出普通HTML,然后将事件添加到链接中

window.addEvent('domready', function(){
    $$('a.confirm_delete').each(function(item, index){
        item.addEvent('click', function(){
            var confirm_result = confirm('Sure you want to delete');
            if(confirm_result){
                this.setProperty('href', this.getProperty('href') + '&confirm');
                return true;
            }else{
                return false;
            }
        });     
    });
});
然而,从您的示例来看,您可能有一个包含多行的表,每行都有自己的删除链接。这使得使用这种样式更具吸引力,因为您不会反复输出
confirm(…)
文本


如果是这种情况,显然不能在链接上使用
id
,因此最好使用类<代码>有点奇怪,但它会起作用-使用\“或&apos;更有意义,&&should be&;和$a可能需要url/html编码是的,恐怕这不起作用,因为“$row[id]“无法在字符串中正确计算。请注意,在大多数服务器上,php短标记被禁用。因此,根据我的经验,大多数服务器上都启用了短_标记。但每个人都有自己的。我也从来没有遇到过短标签的问题。根据我的阅读,默认情况下短标记是打开的。那么,当你的应用程序被放在没有短标记的服务器上时,上帝会帮助你。@nickf我想你可能是对的。我想问一个关于这个的问题(假设还没有),确实如此。可用于避免使用多个隐藏字段的表单,如果您不关心IE,则可以删除。如果链接的onclick函数返回false,则该操作将被取消。confirm()返回true或false,具体取决于用户是单击“确定”还是“取消”。啊,在末尾添加了额外的变量。然而,我倾向于认为,关闭了JS的用户得到了他们应得的。不,但是php去掉了第一个反斜杠,所以到达浏览器的代码中写的是:onclick='return confirm(\'you sure you want delete this record\');'
?> <td><a href="?mode=upd&id=<?= $row[id] ?>&table=<?= $table ?>">Upd</a> / <a href="?mode=del&id=<?= $row[id] ?>&table=<?= $table ?>" onclick="return confirm('Are you sure you want to delete?')">Del</a></td> <?php
window.addEvent('domready', function(){
    $$('a.confirm_delete').each(function(item, index){
        item.addEvent('click', function(){
            var confirm_result = confirm('Sure you want to delete');
            if(confirm_result){
                this.setProperty('href', this.getProperty('href') + '&confirm');
                return true;
            }else{
                return false;
            }
        });     
    });
});
printf('<td><a id="deleteLink" href="delete.php?id=%d&amp;category=%s">Delete</a></td>', $row["id"], $a);
document.getElementById('deleteLink').onclick = function() {
    return confirm("Are you sure you wish to delete?");
};
$('.deleteLink').click(function() {
    return confirm("...");
});