3 回答
TA贡献1909条经验 获得超7个赞
您可以使用class作为选择器,因为这对于多个元素可以是相同的。使用 jQuerydata存储索引。
$i=0;
foreach ($form as $value) {
$input = '<input type="number" class="percentage" data-index="'.$i.'" value="'.$value->persentase.'" min="0" max="100" title="Progres">';
$inputdnone = '<input type="number" id="persentase'.$i.'" min="0" max="100" value="'.$value->persentase.'">'; //this input should not appear in view
$i++;
}
在 jQuery 部分,不需要使用循环,只需为percentage类编写更改函数。只要输入的值发生更改,就会触发此操作:
$(".reportsForApps").on("change", ".percentage", function(){ // 'parentElementId' should be replaced with actual parent element id.
var tbpersentase = $(this).val();
var index = $(this).data("index");
$('#persentase'+index).val(tbpersentase);
});
TA贡献1880条经验 获得超4个赞
添加数据类型 attrdata-group="tbpersentase"并在您的函数中调用它
$input = null;
$inputdnone = null;
foreach ($form as $key => $value) { // you could also use $key value for increment
$input .= '<input type="number" data-group="tbpersentase" id="tbpersentase'.$key.'" min="0" max="100" value="'.$value.'" title="Progres">';
$inputdnone .= '<input type="hidden" id="persentase'.$key.'" min="0" max="100" value="'.$value.'">'; //this input should not appear in view
}
// place in html to echo results of dynamically created inputs from DB info
<?=$input?>
<?=$inputdnone?>
// JQuery 3.4.1
$( "input[data-group='tbpersentase']" ).change(function() {
var $this = $(this).val(); // get users value of the changing input field
var tbpersentaseID = $(this).attr('id'); // get the changing input fields ID so we can remove IDs alpha chars
var getID = tbpersentaseID.replace(/[^0-9]/g,''); // declare a new variable containing the numbers for the selected ID
var persentaseID = 'persentase' + getID; // Concatenate desired alpha ID name to selected key value
$("#"+persentaseID).val($this); // set value
});
在 chrome 中测试并将 的值更改为#persentase输入的值,#tbpersentase但保留原始 ID 在#persentase. 希望这是您想要实现的目标。
此外,如果您想知道从 DB 中获得了多少行,请count()
在 php.ini 中使用。
$form_count = count($form);
- 3 回答
- 0 关注
- 90 浏览
添加回答
举报