2011-01-24 152 views
1

動態頁面這就是我要做的:重定向到使用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? case = $ case

*無法編輯以前的帖子

+2

你在那裏有什麼問題? – Prescott 2011-01-24 00:56:39

+0

請!不要讓用戶通過php代碼在服務器上執行。 – tcooc 2011-01-24 01:00:18

回答

0

您可以動態生成JavaScript或存儲您可以通過JavaScript訪問您網頁中的某個地方(例如,一個隱藏的領域)。

1

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

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

更好,假設你的case變量有一個值。

0

你究竟想要完成什麼?你希望delete.php通過$nt['id']的值還是想讓delete.php腳本通過代碼<?php echo $nt['id']; ?>
如果您需要後者,你可以對$_GET['case']值在delete.php做一個eval:

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!'); 
} 
0

onclick事件返回false從加工點擊這樣的鏈接停止瀏覽器:

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

OR

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

,然後更改的show_confirm()到返回返回false

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']}'"; 

?> 
0

也許ü可以使用它之前,它的工作原理,你應該下載jQuery庫: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'> 

希望它可以幫助..

0

你的$情況應該知道什麼時候PHP是創建頁面,它看起來像未知,爲什麼它是空的...

當您創建輸入元素(與圖像) - 你知道你的情況嗎?如果是,您可以將其作爲參數傳遞給show_confirm(case)...並更改部分:

window.location =「delete.php?case = <?php echo $ case;?>」;

了window.location = 「delete.php殼體=?」 +殼體;