Php 下拉式自动填写表单,包括复选框

Php 下拉式自动填写表单,包括复选框,php,javascript,html,Php,Javascript,Html,我正忙于一个可以创建发票的脚本。我在StackOverflow上找到了一个脚本,可以通过下拉菜单填写表单 <? $sPrijzen = mysql_query("SELECT * FROM prices WHERE company='".$CID."' ")or die(mysql_Error()); ?> <script type="text/javascript"> var omschrijving = new Array();

我正忙于一个可以创建发票的脚本。我在StackOverflow上找到了一个脚本,可以通过下拉菜单填写表单

<?
        $sPrijzen = mysql_query("SELECT * FROM prices WHERE company='".$CID."' ")or die(mysql_Error());
    ?>  
    <script type="text/javascript">
 var omschrijving = new Array();
 var ppe = new Array();
var btw = new Array();
var btw_percentage = new Array();

 omschrijving[0] = "";
ppe[0] = "";
btw[0] = "";
 btw_percentage[0] = "";

<?
$i = 1;
while($fPrijzen = mysql_fetch_assoc($sPrijzen))
{
    ?>
omschrijving[<?=$i;?>] = "<?=$fPrijzen['omschrijving'];?>"
ppe[<?=$i;?>] = "<?=$fPrijzen['ppe'];?>"
btw[<?=$i;?>] = "<?=$fPrijzen['btw'];?>"
btw_percentage[<?=$i;?>] = "<?=$fPrijzen['ppe'];?>"
    <?
    $i++;
}
  ?>


    function Choice1() {
        //x = document.getElementById("users");
        y = document.getElementById("selectProduct1");

          //x.value = y.options[y.selectedIndex].text;
          document.getElementById("omschrijving").value = omschrijving[y.selectedIndex];
          document.getElementById("ppe").value = ppe[y.selectedIndex];
          document.getElementById("btw").value = btw[y.selectedIndex];
          document.getElementById("btw_percentage").value =   btw_percentage[y.selectedIndex];
     }


</script>

首先,为两个复选框指定相同的名称,以便对它们进行分组并给出正确的值:

<input type="checkbox" name="btw_percentage" value="6" /> 6%
<input type="checkbox" name="btw_percentage" value="0" /> 0%
6%
0%
现在需要向函数添加一些逻辑,并根据PHP代码中的值勾选适当的复选框:

function Choice1() {
    //...
    var percentage = btw_percentage[y.selectedIndex];
    alert("DEBUG --- value from PHP: " + percentage);
    var oCheckboxGroup = document.getElementsByName("btw_percentage");
    for (var i = 0; i <oCheckboxGroup.length; i++) {
        var curCheckbox = oCheckboxGroup[i];
        alert("DEBUG --- value of checkbox #" + (i + 1) + " is: " + curCheckbox.value);
        curCheckbox.checked = (curCheckbox.value === percentage);
    }
 }
函数选择1(){
//...
var百分比=btw_百分比[y.selectedIndex];
警报(“调试---来自PHP的值:“+百分比”);
var oCheckboxGroup=document.getElementsByName(“btw_百分比”);

对于(var i=0;i注意:我在发布之前没有刷新页面,这个问题通过影子向导用更好的解决方案解决

我已经尝试过这个解决方案,我认为它可以解决您的问题

我在每个复选框中添加了一个ID属性,用javascript选择它们

<input type="checkbox" id="1-zesprocent" name="1-zesprocent" value="ja" />
<input type="checkbox" id="1-nulprocent" name="1-nulprocent" value="ja" />


启动函数Choice1()时,取消选中这两个复选框,如果
btw_percentage[y.selectedIndex]
中的值为“6”或“0p”,则选中其中一个复选框。

您希望何时选中这两个复选框?下拉列表中的值分别为Product 1、2和3。id btw_percentage包含一个类似“6”、“0p”或“21”(标准VAT)的值。当值为6时,需要选中复选框name=“1-zesprocent”,当值为0p时,需要选中复选框name=“1-nulprocent”需要选中。如果值不是0p或6,则不需要选中任何复选框。谢谢!我们就快到了。但是当我使用此代码并且ppe=0的值时,他选中了两个复选框。当ppe是另一个值(如21)时,他也选择了6%checkbox@user2721621所以你做错了什么,可能是把
value=“0”
两者都有。我现在有了这个:6%;0%;它起作用了,但他选择了6%,不管ppe的值是什么。给他们不同的ID,你不能对多个元素有相同的ID。只有两个元素的名称相同。我现在给他们不同的ID,但当我将ppe更改为“15”或任何其他数字时,它会变为keeps选择6%复选框。6%0%
function Choice1() {
    //x = document.getElementById("users");
    y = document.getElementById("selectProduct1");

      //x.value = y.options[y.selectedIndex].text;
      document.getElementById("omschrijving").value = omschrijving[y.selectedIndex];
      document.getElementById("ppe").value = ppe[y.selectedIndex];
      document.getElementById("btw").value = btw[y.selectedIndex];
      document.getElementById("btw_percentage").value = btw_percentage[y.selectedIndex];

      var checkbox_a = document.getElementById("1-zesprocent");
      var checkbox_b = document.getElementById("1-nulprocent");
      checkbox_a.checked = 0;
      checkbox_b.checked = 0;
      if (btw_percentage[y.selectedIndex] == '6')
      {
       var check_box = document.getElementById("1-zesprocent");
       checkbox_a.checked = 1;
      }
      else if (btw_percentage[y.selectedIndex] == '0p')
      {
       var check_box = document.getElementById("1-nulprocent");
       checkbox_b.checked = 1;
      }

     };
<input type="checkbox" id="1-zesprocent" name="1-zesprocent" value="ja" />
<input type="checkbox" id="1-nulprocent" name="1-nulprocent" value="ja" />