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>";
以上是我尝试使用的代码。每次它什么都不做,我无法看到我如何使用'正确'的JavaScript方法。是什么原因?
答案 0 :(得分:3)
使用GET方法更改状态也是一个坏主意 - 看看有关何时使用GET以及何时使用POST(http://www.w3.org/2001/tag/doc/whenToUseGet.html#checklist)
的指南答案 1 :(得分:3)
我认为$ row [id]在echo语句中没有正确评估。试试这个:
echo "<td><a href='delete.php?id={$row[id]}&&category=$a'...
注意弯曲的括号。
但这更容易阅读:
?><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><?
另外,为你的js添加一个函数来处理确认:
function confirm_delete() {
return confirm('Are you sure you want to delete this record?');
}
然后你的onclick方法就可以是return confirm_delete()
。
答案 2 :(得分:2)
只是一个建议,你使用的是框架吗?
我使用MooTools然后只需在HTML
中包含此脚本confirm_delete.js
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;
}
});
});
});
它所做的就是找到任何带有class =“confirm_delete”的“a”标签,并附上与你的脚本相同的代码,但我发现它更容易使用。它还会在地址中添加一个确认变量,这样如果关闭JavaScript,您仍然可以将它们发送到带有确认提示的屏幕。
答案 3 :(得分:2)
您应该尝试尽可能地将JavaScript与HTML分开。最初输出vanilla HTML,然后将事件添加到链接中。
printf('<td><a id="deleteLink" href="delete.php?id=%d&category=%s">Delete</a></td>', $row["id"], $a);
然后页面上的某些JavaScript代码:
document.getElementById('deleteLink').onclick = function() {
return confirm("Are you sure you wish to delete?");
};
从您的示例来看,看起来您可能有一个包含多行的表,每行都有自己的删除链接。这使得使用这种风格更具吸引力,因为你不会一遍又一遍地输出confirm(...)
文本。
如果是这种情况,您显然无法在链接上使用id
,因此使用类可能更好。 <a class="deleteLink" ...
如果你使用的是JavaScript库,比如jQuery,这很容易:
$('.deleteLink').click(function() {
return confirm("...");
});
答案 4 :(得分:1)
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语法突出显示您的优势。 : - )
答案 5 :(得分:0)
另一种解决方案:
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>';
我将双引号更改为单引号,反之亦然。然后,我将这些变量连同在一起,因此PHP无需进行评估。
此外,我不确定onclick上的返回是否会在用户单击“否”时实际阻止链接被“点击”。
答案 6 :(得分:-1)
如果你坚持使用echo-thing:
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>";
- 因为转义是从php解释器处理的! - )
答案 7 :(得分:-1)
这是我用于相同类型的东西。
我不回显/打印它,我会将html放在?&gt;之间HTML
?> <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