簡體   English   中英

在window.location.href中使用php

[英]Use php in window.location.href

這是我的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不起作用。 因此網址只是?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上的LIVE演示(允許重定向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包圍起來。如果您使用short標記,請正確使用它。因此,最后,它應如下所示:

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的方法。 請參考此鏈接

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM