这是我的js代码:
function check() {
var delvar = "<? $_POST["del"]; ?>";
var answer = confirm("Are you sure you want to delete the article?")
if (answer) {
window.location = "adm-site.php?del=" + delvar + "&delete=true";
}
}
现在,我的问题是delvar
不工作。因此url只是?del=&delete=true
,而不是例如?del=testarticle&delete=true
编辑:我的$_POST["del"]
是一个包含所有文章的选择标签,因此您可以选择删除哪个
HTML代码:
<select name="del">
<option value="none" SELECTED></option>
all articles echo'ed here by php
</select>
我相信你想要这个场景:
- 用户获得一个页面,该页面包含一个包含select标记的表单,该标记将所有文章作为值/选项
- 用户选择要删除的文章
- 用户单击按钮
- 然后您希望将用户重定向到URL
adm-site.php?del=02&delete=true
因此,在这种情况下,只有JavaScript获取所选文章值的值,并将其嵌入重定向URL中。所以,PHP在这里什么都做不了。所有操作都在客户端进行。
试试这个HTML代码:
<html>
<head>
<script language="JavaScript">
function check(){
var delvar=document.form1.del.options[document.form1.del.selectedIndex].value;
//alert(delvar); //debug
var answer = confirm("Are you sure you want to delete the article?")
if (answer) {
//alert("adm-site.php?del=" + delvar + "&delete=true");
window.location = "adm-site.php?del=" + delvar + "&delete=true";
}
}
</script>
</head>
<body>
<form name="form1">
<select name="del">
<option value="none" SELECTED>None</option>
<option value="01">Article 01</option>
<option value="02">Article 02</option>
<option value="03">Article 03</option>
</select>
<input type="button" value="Delete This Article" onclick="check();">
</form>
</body>
</html>
JSFiddle.net上的实时演示(提醒重定向URL)
我编辑/更改的内容:
- 为
form
标记添加了一个名称 - 更改了为var
delvar
分配当前所选文章值的方式
否则,所有代码都和您的代码相同。
正如Pheonix所提到的,一个比特安全代码,与上面的代码做同样的事情,但使用$_POST。您需要在adm-site.php
中使用$_POST
数组而不是$_GET
。
<html>
<head>
<script language="JavaScript">
function check(){
var delvar = document.form1.del.options[document.form1.del.selectedIndex].value;
var agree = confirm("Are you sure you want to delete Article " + delvar + " ?");
if (agree)
return true ;
else
return false ;
} //function check() ENDS
</script>
</head>
<body>
<form name="form1" action="adm-site.php" method="POST">
<select name="del">
<option value="none" SELECTED>None</option>
<option value="01">Article 01</option>
<option value="02">Article 02</option>
<option value="03">Article 03</option>
</select>
<input type="hidden" name="delete" value="true" />
<input type="submit" name="submit" value="Delete this Article" onClick="return check();" />
</form>
</body>
</html>
在JSFiddle.net 上演示
var delvar = '<?php echo $_POST["del"]; ?>';
注意<?php
,而不是不鼓励的短代码。
HTML包含"
,因此需要用单撇号将PHP括起来。如果你使用的是短标签,请正确使用。所以最后,它应该是这样的:
var delvar = '<?= $_POST["del"]; ?>';
还有另一种方法:创建一个指向要发送到的页面的链接,然后给它一个onclick
,如下所示:
<a href="/adm-site.php?del=<?php echo $_POST['del']; ?>&delete=true" onclick="return confirm('Confirm Deletion?')" >Delete</a>
这是有效的,但它可能不适合您的环境,这取决于触发check()
的因素。
var delvar = "<? $_POST["del"]; ?>";
您正在尝试将javascript和php结合起来,但我们没有这种可能性,因为javascript是客户端脚本语言,php是服务器端脚本语言。还有另一种方法可以将javascript&php。请参阅此链接。