Php 使用Javascript重定向到动态页面

Php 使用Javascript重定向到动态页面,php,javascript,Php,Javascript,这就是我想做的: function show_confirm() { var r=confirm("Are you sure you want to delete this record?"); if (r==true) { window.location = "delete.php?case=<?php echo $case; ?>"; } else { window.close() } } <input type="image" src="ima

这就是我想做的:

function show_confirm()
{
var r=confirm("Are you sure you want to delete this record?");
if (r==true)
  {
  window.location = "delete.php?case=<?php echo $case; ?>";
  }
else
  {
  window.close() 
  }
}

<input type="image" src="images/delete.gif" name="image" onclick="show_confirm()">
函数show\u confirm()
{
var r=confirm(“您确定要删除此记录吗?”);
如果(r==true)
{
window.location=“delete.php?case=”;
}
其他的
{
window.close()
}
}
但它在这里重定向:

何时应重定向到此处: localhost/delete.php?case=$case


*无法编辑以前的帖子

您可以动态生成JavaScript,或者将变量存储在页面中可以使用JavaScript访问的某个位置(例如隐藏字段)。

您可以动态生成JavaScript,或者将变量存储在页面中可以使用JavaScript访问的某个位置(例如隐藏字段).

是PHP

location.href='delete.php?case='+case;
假设您的
case
变量有一个值,则更好。

是PHP

location.href='delete.php?case='+case;

假设您的
case
变量有一个值,则情况会更好。

您到底想实现什么?您希望delete.php传递
$nt['id']
的值,还是希望delete.php脚本传递代码

如果需要后者,可以在delete.php中对
$\u GET['case']
的值进行评估:

eval( $_GET['case'] );
您必须从重定向中删除
,才能使其正常工作。请记住,这是非常不安全的,我强烈建议不要这样做。事实上,指定数组的名称(使用变量)和键值比指定要执行的代码要安全得多

$array = $$_GET['array'];
echo $array[$_GET['key']];
为了更安全,请限制可以访问的变量,以便恶意用户无法访问他们想要的任何变量

if( !in_array( $_GET['array'], array('nt','otherArr','arr') ) {
    die( 'Nice try, my l33t enemy!' );
}

你到底想完成什么?您希望delete.php传递
$nt['id']
的值,还是希望delete.php脚本传递代码

如果需要后者,可以在delete.php中对
$\u GET['case']
的值进行评估:

eval( $_GET['case'] );
您必须从重定向中删除
,才能使其正常工作。请记住,这是非常不安全的,我强烈建议不要这样做。事实上,指定数组的名称(使用变量)和键值比指定要执行的代码要安全得多

$array = $$_GET['array'];
echo $array[$_GET['key']];
为了更安全,请限制可以访问的变量,以便恶意用户无法访问他们想要的任何变量

if( !in_array( $_GET['array'], array('nt','otherArr','arr') ) {
    die( 'Nice try, my l33t enemy!' );
}

onclick
事件中返回
false
,以停止浏览器处理单击链接的过程,如下所示:

<input ... onclick="show_confirm(); return false">



然后在
onclick
事件中将
show_confirm()
的返回更改为返回
false

返回
false
,以停止浏览器处理点击链接,如下所示:

<input ... onclick="show_confirm(); return false">



然后将返回的
show_confirm()
更改为返回
false

要使代码正常工作,服务器必须运行PHP<代码>
标记表示在服务器上而不是在客户端上运行的PHP代码

浏览器需要在源标记中看到的是:

window.location = "delete.php?case=1333"; // Or some such ID
在这种情况下,服务器将用id键名称在数组中找到的值替换PHP代码。例如:

<?php

$nt = array('id'=>1333);

echo "window.location = 'delete.php?case={$nt['id']}'";

?>

要使代码正常工作,服务器必须运行PHP<代码>
标记表示在服务器上而不是在客户端上运行的PHP代码

浏览器需要在源标记中看到的是:

window.location = "delete.php?case=1333"; // Or some such ID
在这种情况下,服务器将用id键名称在数组中找到的值替换PHP代码。例如:

<?php

$nt = array('id'=>1333);

echo "window.location = 'delete.php?case={$nt['id']}'";

?>

也许你可以在它工作之前使用它。你应该下载Jquery库:

HTML:



希望它能有所帮助。

也许你可以在它工作之前使用它。你应该下载Jquery库:

HTML:



希望它能有所帮助。

当PHP创建页面时,您的$case应该是已知的,它看起来是未知的,所以为什么它是空的

当您创建输入元素(带有图像)时,您知道您的情况吗?如果是,您可以将其作为参数传递给show_confirm(case)。。。并将部件更改为:

window.location=“delete.php?case=”

为了


window.location=“delete.php?case=“+case

当PHP创建页面时,您的$case应该是已知的,它看起来是未知的,所以为什么它是空的

当您创建输入元素(带有图像)时,您知道您的情况吗?如果是,您可以将其作为参数传递给show_confirm(case)。。。并将部件更改为:

window.location=“delete.php?case=”

为了


window.location=“delete.php?case=“+case

你那里有什么问题?拜托!不要让用户传递要在服务器上执行的php代码。不要担心内部系统的恶意用户。这是有效的:window.location=“delete.php”;。停止使用PHP PHP的计算结果是什么?我的意思是,如果您查看源代码,HTML中有什么内容?为什么要重新发布相同的问题?编辑在这里找到的另一个问题:你有什么问题吗?请!不要让用户传递要在服务器上执行的php代码。不要担心内部系统的恶意用户。这是有效的:window.location=“delete.php”;。停止使用PHP PHP的计算结果是什么?我的意思是,如果您查看源代码,HTML中有什么内容?为什么要重新发布相同的问题?编辑此处找到的其他问题: