0

私は 2 つの php ページを持っています。Pag​​e1 には (html + javascript + php コード) が含まれ、page2 には php コードのみが含まれています。

したがって、page1 の内部では、ドロップダウンに多くの値が含まれています。そのうちの 1 つを選択すると、AJAX コードは次のように page2.php に値を取得します。

チェックボックスの入力をドロップダウンに置き換えると、スクリプトは完全に機能しますが、この場合は機能しません。

目的は、page2 の結果を page1 のチェックボックスとして表示することです。何か案が?

Page1.php:

HTML コード:

  <select onChange="getdids(this.value)" id="groupSelect" name="groupSelect" >
        <option value="0">xxx</option>
            <option value="1">yyy</option>
            <option value="2">zzz</option>
            <option value="3">vvv</option>
  </select> 

  <input type="checkbox" id="alldids" name="alldids" value="0">did<br>

AJAX コード:

  <script>
  function getdids(str)
  {
    if (str=="")
      {
       document.getElementById("alldids").innerHTML="";
       return;
      }
    if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    }
    else
    {// code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function()
    {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
       {
        document.getElementById("alldids").innerHTML=xmlhttp.responseText;
       }
    }
  xmlhttp.open("GET","page1.php?groupName="+str,true);
  xmlhttp.send();
 }


 </script>

Page2.php:

PHP コード:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Get dids</title>
    </head>

    <?php
    require_once('../functions.php');
    include('../variables.php');
    $didGrpName=$_GET['groupName'];
    $didGrpId=GroupId($table_groups,$didGrpName);
    $x=array();
    $x=showDidOfGroup($didGrpId);

    $i=1;
    while($i <= $x[$i]){ ?>
    <input type="checkbox" value="<?php echo $x[$i]; ?>"><?php echo $x[$i]; ?><br>
    <?php $i++; } ?>

    <body>
    </body>
    </html> 
4

1 に答える 1

0

チェックボックスを呼び出すことはありませんgetdids。チェックボックスのグループの値は、(複数ではない)選択要素の値よりも決定が複雑です。

チェックボックス グループから application/x-www-url-form-encoded データを構築するためのアルゴリズムは次のとおりです。

Create an empty array
For each "checkbox" in "group of checkboxes with same name":
    if checkbox.checked:
        append encodeURIComponent(name) + "=" + encodeURIComponent(checkbox.value) to array
JOIN array with "&"
于 2013-02-15T14:32:39.023 に答える