0

ラジオボタンのあるフォームを作成しています。

<form id="land" name="input" method="POST" action="test.php">
    <input type="radio" name="Albania" value="Albania" class="test">
    <input type="radio" name="Sweden" value="Sweden" class="test">
    <input type="radio" name="Norway" value="Norway" class="test">
    .....
    <input type="hidden" name="hidden" value="action">
    <input type="submit" value="Submit">
</form>

150以上の国から選択できます。国を選択すると、作成中のアプリケーションが、その国のデータを表す折れ線グラフを表示します。複数の選択肢があるように、スクリプトを作成しました。基本的に、選択された値の配列を構築し、その後、内破された配列から SQL クエリを構築します。

送信ボタンを使用してデータを送信すると、これは正常に機能します。しかし、ユーザーがラジオボタンをチェックしたときにチャートを直接更新したかったのです。追加した

onClick='this.form.submit()'

入力フィールドに追加すると、これは正常に機能します。

私の問題は、たとえば、ノルウェーとスウェーデンなど、2 つの値を選択して 2 つを比較できないことです。1 つのラジオ ボタンをオンにすると、ページが読み込まれ、値が消えてラジオ ボタンがオフになるためです。

そう。値が消えずにクエリを送信するにはどうすればよいですか?

どんな助けでも大歓迎です!

4

3 に答える 3

0
<script type="text/javascript">
    $(document).ready(function ()
    {
        $('input[type="radio"]').click(function ()
        {
            var values = "";
            $('input[type="radio"]:checked').each(function ()
            {
                values = values + " - " + $(this).val();
            });
            alert(values);
            // Send your query here..
        });
    });
</script>
于 2012-08-31T13:52:58.680 に答える
0
<input <?php if (!(strcmp($_POST['Albania'],"Albania"))) {echo 'checked="checked"';} ?> type="radio" name="Albania" value="Albania" class="test">
<input <?php if (!(strcmp($_POST['Sweden'],"Sweden"))) {echo 'checked="checked"';} ?> type="radio" name="Sweden" value="Sweden" class="test">
<input <?php if (!(strcmp($_POST['Norway'],"Norway"))) {echo 'checked="checked"';} ?> type="radio" name="Norway" value="Norway" class="test">

しかし、代わりにチェックボックスを使用しないでください。おそらくユーザーは、無線入力の 1 つのチェックを外します。

ラジオ ボタンの名前を次のように変更することをお勧めしますname="country[countryName]"implode()

<input <?php if (in_array("Albania", $_POST['country'])) {echo 'checked="checked"';} ?> type="radio" name="country[Albania]" value="Albania">
<input <?php if (in_array("Sweden", $_POST['country'])) {echo 'checked="checked"';} ?> type="radio" name="country[Sweden]" value="Sweden">
<input <?php if (in_array("Norway", $_POST['country'])) {echo 'checked="checked"';} ?> type="radio" name="country[Norway]" value="Norway">

ラジオ ボタンを生成します。

<?php while($row = mysql_fetch_array($sth)) { ?> 
<input class="className" type="radio" name="country[<?php echo $row['land']; ?>]" value="<?php echo $row['land'];?>" onClick='this.form.submit()' <?php if (in_array($row['land'], @$_POST['country'])) {echo 'checked="checked"';} ?> /><?php echo $row['land'];?> 
<?php }?>
于 2012-08-31T13:06:09.867 に答える
0

これは問題ではないと思います。これは、HTML とブラウザが機能する方法です。フォームを送信する (結果としてページをリロードする) 代わりに Ajax 呼び出しを使用すると、選択したすべてのオプションが保持されます。サーバー コードを実行できるようにページを送信して再読み込みする場合は、ユーザーが選択したオプションを保持するサーバー変数を作成する必要があります。UI では、フォームとラジオ ボタンをレンダリングするときに、オプションが選択されているかどうかを確認し、次のように「checked」プロパティを使用する必要があります。

于 2012-08-31T13:07:40.133 に答える