1

私はhtmlフォームを持っています

<a href="#" onclick="document.aa.submit()">送信ボタンの代わりに使用しています

私のコードは私の問題をよりよく説明します..

<html>
<form name="aa" action="aa.php" method="post">
<input type="checkbox" name="posts[]" value="1">
<input type="checkbox" name="posts[]" value="2">
<a href="#" onclick="document.aa.submit()">Delete</a>
<a href="#" onclick="document.aa.submit()">Move</a>
</form>
</html>

aa.php

<?php
print_r($_POST);
?>

結果

Array ( [posts] => Array ( [0] => 1 [1] => 2 ) ) 

問題は次のとおりです。

ユーザーが削除または移動をクリックしたことを知る方法は?

ノート:

私は<input submit>それを使用した場合、問題を解決することを知っています

しかし、何らかの理由で送信ボタンを使用できません

注2

問題は、phpでそれを検出する方法です。

例:

    Array ( [posts] => Array ( [0] => 1 [1] => 2 ['submit'=>'delete']) ) 

if('delete'){
mysql_query("delete from...")
}
else{
mysql_query("update/move ....");
}
4

5 に答える 5

1

どうぞ:

<html>
<form name="aa" action="aa.php" method="post">
<input type="hidden" name="action" value="">
<input type="checkbox" name="posts[]" value="1">
<input type="checkbox" name="posts[]" value="2">
<a href="#" onclick="document.aa.action='delete';document.aa.submit()">Delete</a>
<a href="#" onclick="document.aa.action='move';document.aa.submit()">Move</a>
</form>
</html>
于 2012-06-28T00:22:29.750 に答える
1

PHP のみ?... Javascript なし? JavaScript を使用している場合は、リンクの代わりに JavaScript を呼び出すボタンを使用してフォームを送信することをお勧めします。その前にフォームの非表示フィールドを設定する呼び出しを行うこともできるため、より良い結果が得られる可能性があります。提出されます。また、送信が壊れているのはなぜですか?

非表示フィールドの使用方法については、次のページを参照してください。

http://www.tizag.com/htmlT/htmlhidden.php

投稿時に、ユーザーが送信したかのように隠しフィールドを取得し、html ではなく php で計算を行うことができるはずです。

于 2012-06-28T00:03:08.597 に答える
0

Post 値が送信するオプションを認識できるように、フォームを微調整する必要があります。

  <form name="aa" action="aa.php" id='aa' method="post">
<input type="checkbox" name="posts[]" value="1">
<input type="checkbox" name="posts[]" value="2">
    <a href="#" onclick="submit_function(this)" rel="delete">Delete</a>
        <a href="#" onclick="submit_function(this)" rel="move">Move</a>
        <input id="submit_type" type="hidden" name="task">
        </form>

jsでjqueryを使用

function submit_function( item ){
    if( item.rel == 'move')
    {
    document.getElementById('submit_type').value ='move'
    }
    else if( item.rel == 'delete')
    {
    document.getElementById('submit_type').value ='delete'
    }

    document.getElementById('aa').submit()

    }

PHPで

 if( $_POST['task'] == 'move' )
{
//do move stuff
}

    if( $_POST['task'] == 'delete' )
{
//do delete stuff
}
于 2012-06-28T00:26:03.663 に答える
0

解決:

<script>
function createInput(action){
var input = document.createElement("input");
input.setAttribute("type", "hidden");
input.setAttribute("name", "action");
input.setAttribute("value", action);
document.getElementById("forsm").appendChild(input);
document.aa.submit();
}
</script>

<html>
<form name="aa" id="forsm" action="aa.php" method="post">
<input type="checkbox" name="posts[]" value="1">
<input type="checkbox" name="posts[]" value="2">
<a href="#" id="delete" onclick="createInput('delete');">Delete</a>
<a href="#" id="move" onclick="createInput('move');">Move</a>
</form>
</html>

結果

配列 ( [投稿] => 配列 ( [0] => 2 ) [アクション] => 移動 )

Rusty Weber に感謝します。

于 2012-06-28T00:27:16.410 に答える
0

jQuery を使用するonclickと、タグ内のイベントを削除して、次の jQuery を追加することもできます。

$(document).ready(function() {
    $("a").click(function(event) {
        alert($(this).html()) // Replace this line with the one below for your code
        // document.aa.submit($(this).html())   
    });
});​

は、クリックタグの$(this).html()innerhtml を返します。a例: 「削除」または「移動」。これを php で使用して、クリックされたリンクを識別することができます。

于 2012-06-28T00:09:40.097 に答える