0

これは私の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

編集: My$_POST["del"]はすべての記事を含む選択タグであるため、削除するものを選択します
HTML コード:

<select name="del">
    <option value="none" SELECTED></option>
    all articles echo'ed here by php
</select>
4

5 に答える 5

2

このシナリオが必要だと思います:

  • ユーザーは、すべての記事を値/オプションとして持つ select タグを含むフォームを含むページを取得します。
  • ユーザーは、削除したい記事を選択します。
  • ユーザーがボタンをクリックします。
  • 次に、ユーザーを URL にリダイレクトしますadm-site.php?del=02&delete=true

したがって、この場合、選択した記事の値の値を取得してリダイレクト URL に埋め込むのは JavaScript だけです。したがって、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タグに名前を追加しました。
  • 現在選択されている記事の値をvardelvarに割り当てる方法を変更しました。

それ以外はすべてあなたのものと同じコードです。

Pheonixで言及されているように、上記と同じことを行う少し安全なコードですが、$_POST を使用します。$_POST の代わりに配列を使用する必要があり$_GETますadm-site.php

<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 のデモ

于 2012-07-28T15:15:13.147 に答える
1
var delvar = '<?php echo $_POST["del"]; ?>';

<?php推奨されないショートコードの代わりにも注意してください。

于 2012-07-28T15:05:49.037 に答える
0

HTMLにはが含まれて"いるため、PHPを単一のアポストロフィで囲む必要があります。また、短いタグを使用している場合は、正しく使用してください。したがって、最終的には次のようになります。

var delvar = '<?= $_POST["del"]; ?>';
于 2012-07-28T15:43:11.150 に答える
0
var delvar = "<? $_POST["del"]; ?>"; 

javascript と php を組み合わせようとしていますが、javascript はクライアント側のスクリプト言語であり、PHP はサーバー側のスクリプト言語であるため、そのような可能性はありません。JavaScript と php を組み合わせる別の方法があります。このリンクを参照してください。

于 2012-07-29T14:13:29.553 に答える
0

これについて考える別の方法は次のとおりです。送信したいページへのリンクを作成し、次のonclickようにします。

<a href="/adm-site.php?del=<?php echo $_POST['del']; ?>&delete=true" onclick="return confirm('Confirm Deletion?')" >Delete</a>

これは機能しますが、トリガーによっては、環境に適合しない場合がありますcheck()

于 2012-07-28T16:20:00.833 に答える