使用Javascript重定向到动态页面

时间:2011-01-24 01:33:48

标签: 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="images/delete.gif" name="image" onclick="show_confirm()">

但它重定向到这里: http://localhost/delete.php?case=

何时应重定向到此处: 本地主机/ delete.php?壳体= $情况

*无法编辑上一篇文章

7 个答案:

答案 0 :(得分:1)

<?php echo $nt['id']; ?> 是PHP。

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

更好,假设您的case变量有值。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

你到底想要完成什么?您是否希望delete.php传递$nt['id']的值,或者您是否希望delete.php脚本传递代码<?php echo $nt['id']; ?>
如果您需要后者,可以在delete.php中对$_GET['case']的值进行评估:

eval( $_GET['case'] );

您必须从重定向中移除<?php?>才能生效。请记住,这是非常不安全的,我强烈建议不要这样做。实际上,您可以更安全地指定数组的名称(使用变量变量)和键值而不是要执行的代码。

$array = $$_GET['array'];
echo $array[$_GET['key']];

为了更加安全,请限制可以访问的变量,以便恶意用户无法访问他们希望的任何变量。

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

答案 3 :(得分:0)

false事件中返回onclick,以阻止浏览器处理链接上的点击,如下所示:

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

OR

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

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

答案 4 :(得分:0)

要使代码正常工作,服务器必须运行PHP。 <?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']}'";

?>

答案 5 :(得分:0)

也许你可以在它工作之前使用它你应该下载Jquery Library:Download library

$(document).ready( function(){
$(':image').click( function(){      
    row_id= $(this).attr('row_id');
    show_confirm(row_id);                               
});

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

HTML:

<input type="image" src="images/delete.gif" name="image" row_id='1'>

希望它可以帮助..

答案 6 :(得分:0)

当PHP是创建页面时,你应该知道你的$ case,看起来它是未知的,为什么它是空的......

当你创建输入元素(带图像)时 - 你知道你的情况吗?如果是,您可以将其作为参数传递给show_confirm(case)...并使用:

更改部分

window.location =“delete.php?case =&lt;?php echo $ case;?&gt;”;

代表

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