Javascript 动态表单元素。使用JS更新当前值
我有一个表单,用户可以在其中动态生成多个表单元素重复选择框。与我的问题有关的表格代码如下Javascript 动态表单元素。使用JS更新当前值,javascript,php,jquery,arrays,loops,Javascript,Php,Jquery,Arrays,Loops,我有一个表单,用户可以在其中动态生成多个表单元素重复选择框。与我的问题有关的表格代码如下 for ($i=0; $i < $number; $i++) { <label for="is_business"> Is A Business?</label> <select class="target form-control look2" id="is_business" name="is_b
for ($i=0; $i < $number; $i++) {
<label for="is_business"> Is A Business?</label>
<select class="target form-control look2" id="is_business" name="is_business//note the array on name
<option value="" selected disabled="disabled">select option</option>
<option value="1">Yes</option>
<option value="0">No</option>
</select>
}
问题:我想使用is_business_db数组值,以便动态生成的每个选择框。。。。名称=是商业[…]。。。当用户返回页面时显示正确的选定值。我已经尝试将下面的javascript插入到我的php循环中,显然是关闭/打开php标记,这只适用于生成的第一个选择框
<script>
$('#is_business').val('<?php echo $is_business_status?>');
</script>
我也尝试过不期望在脚本末尾将相同的js插入到单独的循环中成功…同样的问题…只更新了第一个选择框
<?php
for ($i=0; $i < $number; $i++) //php loop
{
$is_business_status=$is_business_db[$i];
?>
<script>
$('#is_business').val('<?php echo $is_business_status?>');
</script>
<?php
}
?>
显然,我没有正确执行循环。任何帮助都将不胜感激 如果有人对这个问题感兴趣,经过几个小时的挠头之后,我意识到我做了一些明显错误的事情,现在已经解决了这个问题。它并不特别优雅,但它确实适用于任何在刷新或页面访问中使用动态创建的选择框返回选定值的人 回响的html
//$is_business_db=serialize($is_business) create array from database string
//$number=count($is_business_db)
for ($i=0; $i < $number; $i++) //number is a count of the array values
<div class="input_field_remove">
<div class="form-group">
<label for="is_business"> Is A Business?</label>
<select class="target form-control look2" id="is_business'.$i.'" name="is_business[]">
<option value="" selected disabled="disabled">select option</option>
<option value="1">Yes</option>
<option value="0">No</option>
</select>
</div>
</div>
然后JavaScript。。。
notes…使用json编码捕获php数据-作为未序列化的数据库字符串,即javascript中的php数组
<?php $index_max=count($is_business_db) ?>
<script>
var index_max='<?php echo $index_max;?>';
var value = <?php echo json_encode($is_business_db) ?><!---this is the critical bit---->
//var data = JSON.parse(value);//this is recommended -NOT USED- to ensure good js code-but not crucial in all situations
//now loop the javascript array and push the current selected values to the user-generated select boxes
for (index=0; index < index_max; index++)
{
$("#is_business"+ index).val(value[index]);
}
</script>
我希望这对将来的人有所帮助
<?php $index_max=count($is_business_db) ?>
<script>
var index_max='<?php echo $index_max;?>';
var value = <?php echo json_encode($is_business_db) ?><!---this is the critical bit---->
//var data = JSON.parse(value);//this is recommended -NOT USED- to ensure good js code-but not crucial in all situations
//now loop the javascript array and push the current selected values to the user-generated select boxes
for (index=0; index < index_max; index++)
{
$("#is_business"+ index).val(value[index]);
}
</script>