-2

$_POST で値という名前の属性以外の属性の値を取得することは可能ですか?

example: <option value="FusRo" name="Dah"></option>

通常、$_POST['Dah'] を使用すると、PHP は FusRo (値) を取得します。

しかし、value という名前の属性以外の別の属性の値を取得したいと考えています。お分かりできると良いのですが。

$_POST を使用して他の値を取得できない場合、使用できる他のコマンドはありますか?

別の例:私が使用する場合

<option value="FusRo" name="Dah"></option>

"Fusro" の代わりに $_POST で "Dah" を取得できますか?

4

4 に答える 4

5

非表示フィールドに他の値を入れることができます:

<input type="hidden" name="DahHidden" value="somethingelse" />

次に、次の方法で取得$_POSTします。

$_POST['DahHidden']

の内容に基づいてこの値を動的に変更する<select>必要がある場合は、JavaScript が必要になります。

$_POSTからキー(つまり、nameフォーム フィールドの属性)を取得したい場合は、次の$_POSTように繰り返すことができます。

foreach( $_POST as $key => $value) 
    echo $key . ' => ' . $value; // Will print Dah => value (eventually)

繰り返し処理を$_POST行うと、その 1 つのフォーム要素よりも多くの出力が生成される可能性が高いことに注意し'Dah'てください (フォームで送信したものが 1 つだけである場合を除きます。

于 2012-07-20T12:43:54.060 に答える
1

唯一の方法は、JavaScript を使用して投稿されたデータを変更するか、さらに簡単に jQuery を使用することです

次に、次のようになります。

<html>
    <head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.21/jquery-ui.js"></script>
    </head>

    <body>
        <form name="skyrim" id="skyrim">
            <input type="text" value="FusRo" name="Dah" data-name="dhovakin" data-race="kajit" />
        <form>

        <script>
            $('#skyrim').submit(function( e ){
                data = {};
                url  = 'http://sandbox.local/testpost.php';

                e.preventDefault();

                $('input, textarea', this).each(function(){

                    var pcs   = $( this ).data();
                    var ename = $( this ).attr('name');

                    if(undefined == data[ ename ] ){
                        data[ ename ] = {};
                        data[ ename ]['_'] = $(this).val();
                    }

                    $.each(pcs, function(k, v){
                        data[ ename ][k] = v;
                    });
                });

                $.ajax({
                    url  : url
                   ,data : data
                   ,type : "POST"

                }).done(function(){

                });
            });
        </script>
    </body>
</html>

上記のコードは、で始まるすべての属性をdata-投稿に追加します。

上記の結果は次のとおりです。

Dah[_]      FusRo     // default value 
Dah[name]   dhovakin  // data-name
Dah[race]   kajit     // data-race
于 2012-07-20T13:26:47.750 に答える
0

$_POST は、フィールドの名前とそれに対応する値のみを提供します。

于 2012-07-20T12:45:09.563 に答える
0

いいえ、入力フィールドの「値」以外は投稿できません。JavaScriptを使用してハッキングすることができます。何かのようなもの

document.getElementById('FORM').onsubmit = function() {
document.getElementById('FIELD').value = document.getElementById('FIELD').customAttribute
}

ただし、JavaScript が無効になっている場合、フォームは間違った値を送信します。本当に堅実な解決策ではありません。

自分の価値観を再定義する必要があるように思えますが、なぜこの動作を変更したいのか、私には本当に想像できません。

于 2012-07-20T12:47:04.110 に答える