【发布时间】:2014-03-26 21:45:00
【问题描述】:
我有一个 javascript 文件将数据发布到 php 文件,这些文件假设从 mysql 数据库中获取数据,然后用指定的数据填充字段。当我调用 php 函数来存储数据库中字段的名称时,它会返回一个隐藏字段,其中包含表中存储的字段数量作为隐藏字段的值:
$i = 0;
$field_names = [];
while($i < mysql_num_fields($request)){
$field = mysql_fetch_field($request, $i);
$field_names[] = $field->name;
if(!$field){
die('something is wrong with the field var');
};
echo('<div class="fields" id="field_' . $i . '">' . $field->name . '<br /></div>');
$i++;
};
echo('<input type="hidden" value="' . $_POST['postselecttbl'] . '" id="hidden_tbl" />' .
'<input type="hidden" value="' . count($field_names) . '" id="num_fields" />');
$_SESSION['field_names'] = $field_names;
似乎一切正常。隐藏字段“#num_fields”设置有多少字段。但是当我用 jquery 得到 '#num_fields' 的 val() 时,它会返回 undefined 直到你再次运行该函数,然后它具有上次运行时的值。
$.post('php/get_flds.php', {postdbhost: dbhost, postdbuser: dbuser, postdbpass: dbpass, postselectdb: selectdb, postselecttbl: selecttbl},
function(d){
$('#display_out').html(d);
}
);
var num_flds = $('#num_fields').val();
alert('about to pop ' + num_flds);
for(var i = 0; i < num_flds; i++){
alert('populating ' + i);
pop_fld(i);
};
隐藏输入是否设置不正确?我的意思是,它在 html 代码中显示为已设置,但 jquery 不合作。
【问题讨论】:
-
JavaScript(和 ajax)是异步的,在您检查隐藏字段的值之前,帖子尚未完成。只需将您的支票放在回调函数中即可。
-
听起来它没有被当作价值。试试
$('#num_fields').attr('value')
标签: javascript php jquery mysql hidden-field