提问人:mrlayance 提问时间:9/30/2022 最后编辑:mrlayance 更新时间:9/30/2022 访问量:63
函数内的 php 数组只有 1 个结果
php array within function only 1 result
问:
我无法弄清楚如何让$output在此功能中工作。
<?php
$conn = new mysqli($servername, $username, $password, $dbname);
function fill_unit_select_box($conn)
{
$output = '';
$query = "SELECT * from `skater` ORDER By `skater`.`skater_name_first` ASC";
$result = $conn->query($query);
while($row = mysqli_fetch_array($result))
{
$output .= '<option value="'.$row["skater_NUM"].'">'.$row["skater_NUM"].''.$row["skater_NUM"].'</option>';
//$output .= '<option value="'.$row["skater_NUM"].'">'.$row["skater_name_first"].''.$row["skater_name_last"].'</option>';
}
return $output;
}
?>
稍后调用函数。
<option value="">Select Unit</option><?php echo fill_unit_select_box($conn); ?></select>
如果我使用以下内容,则没有任何效果。选项字段不会显示在选择中。
output .= '<option value="'.$row["skater_NUM"].'">'.$row["skater_name_last"].''.$row["skater_name_first"].'</option>';
如果我使用以下功能,则该功能有效。
output .= '<option value="'.$row["skater_NUM"].'">'.$row["skater_NUM"].''.$row["skater_NUM"].'</option>';
调用除 skater_NUM 之外的任何内容都会导致问题。
如果我在以下之外调用该函数,则该函数可以工作。
$(document).on('click', '.add', function(){
var html = '';
html += '<tr>';
html += '<td><input type="text" name="item_name[]" class="form-control item_name" /></td>';
html += '<td><input type="text" name="item_quantity[]" class="form-control item_quantity" /></td>';
html += '<td><select name="item_unit[]" class="form-control item_unit"><option value="">Select Unit</option><?php echo fill_unit_select_box($conn); ?></select></td>';
html += '<td><button type="button" name="remove" class="btn btn-danger btn-sm remove"><span class="glyphicon glyphicon-minus"></span></button></td></tr>';
$('#item_table').append(html);
});
该功能正在工作。只是添加行 .add 按钮不会添加除skater_NUM字段的数字以外的任何内容的新行。
$(document).on('click', '.add', function(){
var html = '';
html += '<tr>';
html += '<td><input type="text" name="item_name[]" class="form-control item_name" /></td>';
html += '<td><input type="text" name="item_quantity[]" class="form-control item_quantity" /></td>';
html += '<td><select name="item_unit[]" class="form-control item_unit"><option value="">Select Unit</option><option value="8">Skater1</option><option value="21">Skater2</option></select></td>';
html += '<td><button type="button" name="remove" class="btn btn-danger btn-sm remove"><span class="glyphicon glyphicon-minus"></span></button></td></tr>';
$('#item_table').append(html);
});
答:
0赞
Gene_Nostrada
9/30/2022
#1
变量 $output 在每个循环中被替换,$output 将为您提供最后一行的结果。
解决方案:尝试将$output替换为$output .=
-2赞
mrlayance
9/30/2022
#2
我想通了......添加“..”现在回声喜欢数字以外的字符......这花了太长时间。
html += '<td><select name="item_unit[]" class="form-control item_unit"><option value="">Select Unit</option><?php echo fill_unit_select_box($conn); ?></select></td>';
自
html += '<td><select name="item_unit[]" class="form-control item_unit"><option value="">Select Unit</option>"<?php echo fill_unit_select_box($conn); ?>"</select></td>';
评论
0赞
Nico Haase
9/30/2022
凸轮你分享更多细节?第一个片段和第二个片段有什么区别?
0赞
mrlayance
9/30/2022
在php echo“<?php echo fill_unit_select_box($conn); ?>”
1赞
Nico Haase
9/30/2022
你这是什么意思?请通过编辑将所有说明添加到您的答案中
0赞
ADyson
9/30/2022
这两段代码之间似乎没有区别
1赞
Your Common Sense
9/30/2022
他在没有意义的地方添加了引号,围绕着几个选项标签
评论
$output .=
每次循环时都会将结果连接到现有字符串中,因此您会得到多个选项,不确定为什么要将其注释掉?skater