web-dev-qa-db-ja.com

設定POST formを使用しない変数

フォーム関連フィールド(type = 'hidden'なし)およびPHPのみを使用せずに$_POST['var']を設定する方法はありますか?何かのようなもの

$_POST['name'] = "Denniss";

これを行う方法はありますか?

編集:誰かがこれについていくつかの詳細を要求しました。たとえば、フォームがあるページがあります。フォームは次のようになります

<form method='post' action='next.php'>
<input type='text' name='text' value='' />
<input type='submit' name='submit' value='Submit'/>
</form>

送信ボタンをクリックすると、next.phpにリダイレクトされます。 $ _POST ['text']変数を別の値に設定する方法はありますか?他の送信ボタン(たとえば)をクリックしたときに$ _POST ['text']が隠しフィールドを使用せずにnext.phpに設定するように、これを永続化するにはどうすればよいですか。

それでもはっきりしない場合はお知らせください。ご協力いただきありがとうございます。

51
denniss

はい、単に別の値に設定します。

$_POST['text'] = 'another value';

これにより、配列のtextキーに対応する以前の値が上書きされます。 $_POSTはスーパーグローバル連想配列であり、通常のPHP配列などの値を変更できます。

Caution:この変更は、同じPHP実行スコープ内でのみ表示されます。実行が完了し、ページが読み込まれると、$_POST配列がクリアされます。新しいフォームを送信すると、新しい$_POST配列が生成されます。

フォーム送信間で値を永続化する場合は、inputタグのvalue属性としてフォームに値を配置するか、データストアから取得する必要があります。

78
Sarfraz

$ _POST ['text']を別の値に設定する場合は、次を使用しないでください:

$_POST['text'] = $var;

next.phpで?

6
Rakward

ajaxを使用するか、httpヘッダーとコンテンツを次のように送信することで実行できます。

POST /xyz.php HTTP/1.1
Host: www.mysite.com
User-Agent: Mozilla/4.0
Content-Length: 27
Content-Type: application/x-www-form-urlencoded

userid=joe&password=guessme
3
bcosca

JQueryを使用して実行できます。例:

<script src="https://code.jquery.com/jquery-1.11.2.min.js"></script>

<script>
    $.ajax({
        url : "next.php",
        type: "POST",
        data : "name=Denniss",
        success: function(data)
        {
            //data - response from server
            $('#response_div').html(data);
        }
    });
</script>
1
joan16v