我正忙于创建可以创建发票的脚本。我在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%
<input type="checkbox" name="1-nulprocent" value="ja" /> 0%
一切正常。文本输入的值将自动填充。但现在我有2个复选框,含有我们国家的增值税(6%和0%)。我希望通过下拉列表选择它时自动“检查”。有人可以帮我解决这个问题吗?
答案 0 :(得分: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”,它应该可以工作。
注意:添加了一些调试行以帮助调试代码问题,当所有工作正常时删除或将它们放入备注中。
答案 1 :(得分: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',请选中其中一个。