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