第一行仅在我的行中起作用。
<?PHP for ($i = 1; $i <= 20; $i++){ ?>
<div id="lines" class="row">
<div class="col-sm-1" style="text-align:left;border:1px solid #808080"><span id="row_number"><?PHP if ( $i < 10 ){ echo "0".$i;}else{echo $i;} ?></span></div>
<div class="col-sm-2" style="text-align:left;border:1px solid #808080">
<select id="part_number" style="border:0px;">
<option value="None Selected"></option>
<?PHP
$partNumbers = $wpdb->get_results("SELECT * FROM _cif_inventory_table;");
foreach ($partNumbers as $partNumber) {
echo '<option value="'.$partNumber->part_number.'">'.$partNumber->part_number.'</option>';
}
?>
</select>
</div>
<div class="col-sm-1" style="text-align:left;border:1px solid #808080"><input size="5" maxlength="5" id="quantity" value="" /></div>
<div class="col-sm-6" style="text-align:left;border:1px solid #808080"><input size="75" id="description-<?PHP echo $i; ?>" value="" /></div>
<div class="col-sm-1" style="text-align:left;border:1px solid #808080"><input id="unitPrice-<?PHP echo $i; ?>" /></div>
<div class="col-sm-1" style="text-align:left;border:1px solid #808080"><input id="amount" value="" /></div>
</div><!-- end .row -->
<?PHP } ?>
我很确定是ID不能正常工作,因为它们都一样,所以我决定将循环计数器添加到ID <input size="75" id="description-<?PHP echo $i; ?>" value="" />
和<input id="unitPrice-<?PHP echo $i; ?>" />
中,但是我很困惑关于如何在ajax方面做到这一点,我尝试这样做
更新
$.ajax({
url: '<?PHP echo admin_url('admin-ajax.php'); ?>',
type: 'post',
data: { action: 'description', part_number: part_number },
success: function(data) {
for ( var i = 1; i <= 20; i++ ) {
$('#description-' + i).val( data );
}
}
});
但是这会填充第1行下拉菜单中的每个说明字段。
答案 0 :(得分:2)
您应避免为每一行生成JavaScript。想象一下,如果每页有100行,会发生什么情况。 您可以在HTML中使用data-value,然后在js中获取值。这是您的html:
<input type="text" data-name="test" data-value="123" data-id="123" class="myinput"/>
这可以是您的js:
$(".myinput").click(function(){
var name=$(this).data("name");
var value=$(this).data("value");
var id=$(this).data("id");
});
答案 1 :(得分:1)
首先,将循环切换为javascript,而不是php。
public async Task UpdateLocationAddress(int locationId, string newAddress)
{
Location locationToBeUpdated = GetById(locationId);
if(locationToBeUpdated != null)
{
locationToBeUpdated .Address = newAddress;
wait _context.SaveChangesAsync();
}
}
然后,为ID添加字符串串联。
for (var i = 1; i <= 20; i++) {
}
这就是正确选择HTML元素的方法,但是,使用当前代码,所有它们的值都将设置为相同的值。