Javascript 从数据库动态创建表单并使用jquery访问元素
我有一个从数据库创建的表单。表单包含如下创建的单选按钮Javascript 从数据库动态创建表单并使用jquery访问元素,javascript,php,jquery,html,forms,Javascript,Php,Jquery,Html,Forms,我有一个从数据库创建的表单。表单包含如下创建的单选按钮 <label> <input type="radio" name="rizici_radio<?php echo $riz_id ?>" value="<?php echo $rizik['riz_vrednost_da']; ?>" > <?php echo $rizik['riz_vrednost_da']; ?> </label> Name属性
<label>
<input type="radio" name="rizici_radio<?php echo $riz_id ?>"
value="<?php echo $rizik['riz_vrednost_da']; ?>" >
<?php echo $rizik['riz_vrednost_da']; ?>
</label>
Name属性包含rizici_radio和数据库中的id。每行都有一对值为1或0的单选按钮。
所以我的问题是操纵这对单选按钮的变化值。例如,当我选择值为1的单选按钮时,它应该用已更改单选按钮的值填充span标记。我还有另一个span,其中应该显示所有span标记的值之和
灰色是使用jQuery存储所选单选按钮值的范围:
$(radiobutton selector here).click(function(){
$(this).next(".greyValueArea").val($(this).val());
})
这应该能奏效。只需更换选择器
我必须从id创建选择器。这是我的主要问题。我必须使用类似于for循环的方法将id添加到名称或id中 @暴徒,你也可以给他们上一些普通的课 你看,如果你做了一个
$('.button').on("click",function(){
console.log($this)
})
它将控制台记录您单击的按钮类项目,并应用于您拥有的每个按钮类,使用循环可能会产生问题,因为有时循环计数器值和DB ID可能不同。所以您需要做的是将DB ID设置为两个单选按钮集,如下所示,我将rel ID值设置为DB ID 一, 0 并使用下面的jquery代码
$(".promena").on("change",function(){ // bind a function to the change event
if( $(this).is(":checked") ){ // check if the radio is checked
var val = $(this).val(); // retrieve the value
var id = $(this).attr("rel-id");
$("#bodovi"+id).val(val); //setting value to respective hidden field
$("#scores"+id).text(val); // showing selected radio button value in gray area
}
});
希望这对您有所帮助。首先,如果您以后需要更新服务器数据,我认为最好使用ajax请求从服务器请求表数据作为json数据 无论如何,要获取单击的行,还可以使用以下脚本:
$('.selectionForm').on('change', 'input[type="radio"]',
function(event) {
console.log('changed radio', $(this).attr('name'), $(this).val(), $(this).parent().find('span'));
$(this).parent().find('span').text($(this).val());
});
它在DOM中上升到单击单选按钮的父级,然后使用“查找”再次下降到该行的范围
它使用事件委派,因为这是从ajax请求中动态添加内容所必需的。PHP添加的内容不需要这样做
请参阅下面的演示和这里的
车把.注册表帮助'isChecked',函数输入,选项{
//console.loginput,这个;
//console.logthis,this.value,输入;
返回此值。值===输入?'checked':;
};
var$out=$'out',
rowTmpl=$row-template.html,
模板=handlebar.compilerowTmpl;
$.ajax{
网址:'http://www.mocky.io/v2/556d9fd9e822500114253f39',
jsonp:“回调”,
数据类型:jsonp,
成功:功能响应{
console.logresponse;
$.eachresponse、functionindex、data{
//控制台日志数据;
$out.appendtemplatedata;
};
}
};
$'.selectionForm'.on'change',input[type=radio]',functionevent{
log'changed radio'、$this.attr'name'、$this.val、$this.parent.find'span';
$this.parent.find'span'。文本$this.val;
};
//$out.htmlJSON.stringifydataArray;
保险商实验室{
列表样式类型:无;
}
李{
边框底部:1px纯色灰色;
}
使用ajax请求加载的表单:
使用javascript生成的表
0
1.
1.
0
1.
1.
->
0
1.
{{value}}
使用服务器端脚本生成的表单
0
1.
1.
0
1.
1.
您能在php执行后显示html输出吗,谢谢。这是表中一行的输出。您是否为此实现了jquery代码?这是用我尝试过的jquery代码更新的。jQuery的第一行有一个错误:var=ukupno=13;应为var ukupno=13;我必须从id创建选择器。这是我的主要问题。我必须使用类似for循环的方法将id添加到name或id.edited中,并且您也可以这样做$container保存所有其他RadioButtons输入。一旦更改鼠标,单击鼠标上方,函数blah blah。。。因为你也可以按标签或类型来选择项目,就像我对输入所做的那样。这是因为单选按钮是它的工作!非常感谢。现在我只需要在每次更改时对span中的所有值求和。将一个类设置为all span的try-down代码,用于sum var total$.spanClassName.eachfunction{total=total+parseInt$this.text;}