0

今、私は入力テキスト、ラジオ、および送信ボタンを持っています..

私のことを言いましょうurl = image-search.php

<form>
<input type="text" name="name"><br>
<input type="radio name="arrange" value="horizontal"><br />
<input type="radio name="arrange" value="vertical"><br>
<input type="submit" name="submit"><br>

ボタンをクリックすると..同じページにリダイレクトされますが、url = image-search.php?name=ss&arrange=horizontal

このページにはまだボタンがあります..

質問は..最初のページでボタンをクリックした後=image-search.php

名前の入力テキストにユーザー入力値を残したい..

ユーザーの選択に基づいてチェックボックスをチェックする方法は?

4

2 に答える 2

3

フォームを送信したときにページがリロードされた場合は、php を使用してフォーム フィールドのデフォルト値を設定できます。

<form>
<input type="text" name="name" value="<?php echo isset($_GET["name"])?$_GET["name"]:""; ?>"><br>
<input type="radio" name="arrange" value="horizontal"<?php echo (isset($_GET["arrange"])?($_GET["arrange"]=="horizontal"?" checked='checked'":""):""); ?>><br />
<input type="radio" name="arrange" value="vertical"<?php echo (isset($_GET["arrange"])?($_GET["arrange"]=="vertical"?" checked='checked'":""):""); ?>><br>
<input type="submit" name="submit"><br>
</form>
于 2013-04-25T17:18:05.333 に答える
0

これがあなたの質問への答えです..これがすべての人に役立つことを願っています.. @Macke - 送信後に値を設定するためのあなたのアプローチは本当に良いですが、フォームに多くの要素がある場合.. 1000としましょう-ASでは苦痛になります*..

このスクリプト タグをHEADページのタグに追加します -

<script language="javascript" type="text/javascript">
    var obj = JSON.parse('<?= json_encode($_REQUEST) ?>');
    console.log(obj);

    function __setPostBackValue(element){
        if(obj.length <= 0) return;
        var type = element.type;
        var fval;
        console.log('Processing...'+ element.name);
        try{
            eval('fval = obj'+'.'+element.name);
        }
        catch(ex){

        }
        if(type == 'text'){
            element.value = fval; 
        }
        if(type == 'checkbox'){                    
            if(fval != undefined)
                element.setAttribute("checked","on");                        
        }
        if(type == 'radio'){                    
            if(fval != undefined && element.value == fval)
                element.setAttribute("checked","on");                        
        }

    }

</script>

そしてページの一番下に、はいページの一番下(本文が終わる前)に別のスクリプトタグを追加します-

<script language="javascript" type="text/javascript">
            var fields = document.getElementsByTagName('input');
            for(var i=0;i<fields.length;i++){
                __setPostBackValue(fields[i]);
            }
        </script> 

それは何をしますか?フォームを送信するvar obj = JSON.parse('<?= json_encode($_REQUEST) ?>');と、Javascript で使用できるローカル JSON オブジェクトが作成され、ページの最後に追加したスクリプトが作成されます。すべての要素をループし、__setPostBackValue関数を呼び出します。Javascriptで要素の値を設定しているところ。

これは少しトリッキーですが、うまくいきます..!!

PS: 私のページにはラジオ ボタンがありませんでしたが、あれば簡単に追加できます。

-パレシュ・ラソッド

于 2014-07-31T17:08:42.647 に答える