1

請求書を作成できるスクリプトで忙しいです。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>

そして私のHTMLは次のようになります:

    <select id="selectProduct1" name="users" onChange='Choice1();'><option></option>
<option value="1">Product 1</option>
<option value="2">Product 2</option>
<option value="3">Product 3</option>
</select>
<p>ids <input type="text" id="omschrijving" name="id" ></p>
<p>use <input type="text" id="ppe" name="username" ></p>
<p>ful <input type="text" id="btw" name="full_name" ></p>
<input type="checkbox" name="1-zesprocent" value="ja" <? if?> /> 6&#37;
<input type="checkbox" name="1-nulprocent" value="ja" /> 0&#37;                                                            

すべてが機能します。テキスト入力の値は自動入力されます。しかし今、私たちの国の付加価値税 (6% と 0%) の 2 つのチェックボックスがあります。そして、ドロップダウンで選択したときに自動的に「チェック」したいと思います。誰かがこのことで私を助けることができますか?

4

2 に答える 2

0

まず、両方のチェックボックスに同じ名前を付けて、それらがグループ化され、適切な値が与えられるようにします。

<input type="checkbox" name="btw_percentage" value="6" /> 6%
<input type="checkbox" name="btw_percentage" value="0" /> 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);
    }
 }

PHP 配列の値は$fPrijzen['ppe'];「6」または「0」のいずれかである必要があり、機能するはずです。

注: コードの問題をデバッグするのに役立つデバッグ行をいくつか追加しました。

于 2013-08-27T13:01:16.863 に答える
0

注:投稿する前にページを更新していませんでした.Shadow Wizardによるより良い解決策で質問が解決されました.

この解決策を試してみましたが、問題を解決できると思います。関数 Choice1() にコードを追加する

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;
      }

     };

各チェックボックスに 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' の場合はいずれかをチェックします。

于 2013-08-27T14:10:49.270 に答える