【发布时间】:2011-04-23 18:54:57
【问题描述】:
我有 jQuery 选项卡,其中每个选项卡和相应的内容都由 PHP foreach 循环填充。
对于每个标签,用户可以上传一张图片。我有这样的设置,一旦用户选择了一个文件,一个 jquery 脚本就会自动开始上传——浏览按钮被隐藏并替换为“上传你的图片”。
这里是代码(CI 标记):
<ul class="tab_header">
<?php foreach ($p as $row):
echo '<li>
<a href="#tabs-'. $row->p_id . '">' . $row->p_name . '</a>
</li>';
endforeach; ?>
</ul>
<?php foreach ($p as $row): ?>
<div id="tabs-<?php echo $row->p_id; ?>">
<?php echo form_open_multipart('/p/p_upload_picture/' . $row->p_id, 'id="upload_form"');
echo form_upload('userfile', '', 'id="file_select"');
echo form_hidden('upload','upload');
echo form_close(); ?>
<div id="loading" style="display:none;">
Uploading your picture...
</div>
</div>
<?php endforeach; ?>
<script>
$(function(){
$("#file_select").change(function(){
$("#upload_form").submit();
$("#upload_form_div").hide();
$("#loading").show();
});
});
</script>
这非常有效,但仅在第一个选项卡上。
在所有其他选项卡中,jquery 脚本不会运行——只要我选择了一个文件,文件名就会显示在浏览按钮字段中,并且不会进行上传(未提交表单)。
我想知道这是否与没有为其他选项卡初始化的脚本有关。
我该如何解决这个问题?
感谢您的帮助,非常感谢。
【问题讨论】:
-
正如@Kevin 所说,在页面上重复使用相同的“id”值会导致问题。
标签: php javascript jquery tabs initialization