0

したがって、フォームに8つのチェックボックスのリストがあります。これらのチェックボックスは、フレームに読み込まれるリンクを制御することになっています。ただし、どこから始めればよいかわかりません...
Checkbox1(appendThis1) - チェック
済み Checkbox2(appendThis2)
Checkbox3(appendThis3) - チェック
済み Checkbox4(appendThis4)
Checkbox5(appendThis5) - チェック 済み
Checkbox6 (appendThis6)


したがって、これに基づいて、http://www.google.comなどのベース URL があり、チェックボックス 1、3、および 5 がチェックされているため、appendThis1、appendThis2、appendThis3 が URL の末尾に追加されますが、いずれも他のチェックボックスは、URL に何かを追加します。各チェックボックスは、特定のパラメーターを URL に追加または削除します。
また、チェックボックスをオンにすると、URL がリロードされます。

4

2 に答える 2

0

私がこれに行く方法は次のとおりです

  • HTMLフォームで、すべてのチェックボックスが同じ名前で、最後に空の角括弧があることを確認してください。これにより、phpで配列が返されます。値として、html に追加する文字列を設定する必要があります。このようなもの:

<input type="checkbox" value="q=something" name="myCheckboxes[]" /> option 1
<input type="checkbox" value="lang=en" name="myCheckboxes[]" /> option 2
...

  • あなたのphpコードでは、投稿から戻ってきた配列を内破し、それをhtmlに追加してください。(詳細はこちらhttp://www.html-form-guide.com/php-form/php-form-checkbox.htmlをご覧ください)。擬似コードは次のようになります。

    $url = 'http://www.google.com?';
    $checkboxes = $_POST['myCheckboxes'];
    $url .= implode('&', $checkboxes);

  • チェックボックスがチェックされたときの自動送信には、クライアント側のスクリプトが必要です。私の選択は jQuery で、次のようになります。

    $('#myForm input[type="checkbox"]').change(function() {
    $('#myForm').submit();
    };

どのコードもテストされていませんが、正常に動作するか、少なくとも正しい方向に向けられるはずです。もちろん修正も大歓迎です!

于 2013-01-24T22:10:36.937 に答える
0

生の Javascript を使用した例。結果の URL を使用して iframe をロードすることができます。

jsフィドル

<script language='javascript'>

arr_sel = new Array();


function constructURL(cv)
{
  if (arr_sel.length==0)
  {
     arr_sel.push(cv);
  } else {

    if (inArray(cv, arr_sel))
    {
        key = getKey(cv, arr_sel);
        arr_sel.splice(key,1);
    } else {
        arr_sel.push(cv);
    }

  }
  makeURL(arr_sel);

}
function inArray(val, arr) 
{
    var length = arr.length;
    for(var i = 0; i < length; i++) {
        if(arr[i] == val) return true;
    }
    return false;
}

function getKey(val, arr)
{
  for (var i = 0; i < arr.length; i++) 
  {
    if (arr[i]==val)
      return i
  }
}

function makeURL(arr_sel)
{

  opts = new String; 
  arr_opts = new Array();
  for (var i = 0; i < arr_sel.length; i++) 
  {
    arr_opts.push(arr_sel[i]);
  }
  url = 'http://google.com?' + arr_opts.join('&');

  document.getElementById('myurl').innerHTML = url;

}
</script>

<input type=checkbox name=whatever value='opt1=foo' onClick="constructURL(this.value)"> foo <br>
<input type=checkbox name=whatever value='opt2=bar' onClick="constructURL(this.value)"> bar <br>

<div id='myurl'>http://google.com?</div>
于 2013-01-24T22:10:52.540 に答える