【问题标题】:First Form not displayed being in loop while others display第一个表单未显示在循环中,而其他表单显示
【发布时间】:2013-02-13 00:39:18
【问题描述】:

我正在处理现有的应用程序。我遇到了一个奇怪的问题。这是我的循环。

<tbody>
<?php if($results->num_rows > 0 ): ?>
    <?php foreach ($results->result() as $row1): ?>            
        <tr>
            <td class="td_data"><a href="<?php echo site_url('campaign/search/customer_name/'.$row1->customer_name)?>"><?php echo $row1->customer_name; ?></a></td>
            <td class="td_data"><?php echo $row1->postcode; ?>&nbsp;</td>
            <td class="td_data"><a href="<?php echo site_url('campaign/search/company/'.$row1->company);?>"><?php echo $row1->company; ?></a></td>
            <td class="td_data"><?php echo $row1->enquiry_status; ?></td>                
            <td class="td_data"><?php echo $row1->form_source; ?></td>
            <td class="td_data"><?php echo anchor('customer/edit/' . $row1->customer_id, 'Edit'); ?></td>
            <td class="td_data">
                <a href="javascript:;" id="member_login_link<?php echo $row1->customer_id?>">Login</a>
                <?php $action   =   $this->config->item('front_site_url').'members/login';?>
                <form id="member_login<?php echo $row1->customer_id?>" action="<?php echo $action;?>" method="post" >
                    <input type="hidden" name="username" value="<?php echo $row1->username?>"/>
                    <input type="hidden" name="password" value="<?php echo $row1->password?>"/>
                    <input type="hidden" name="submitted" value="yes" />
                </form>
                <script type="text/javascript">
                    $('#member_login_link<?php echo $row1->customer_id?>').click(function(){
                        $('#member_login<?php echo $row1->customer_id?>').submit();
                    });
                </script>
            </td>
        </tr>
    <?php endforeach; ?>
<?php else: ?>
     <tr>
        <td class="td_data">No Record Found</td>
    </tr>
<?php endif; ?>
</tbody>

这将创建一个列表。并且检查元素会显示这个。

这是 firebug 的结果,除了第一个元素之外的所有元素都可以。

这是第一行结果

我无法理解为什么会这样。我检查了不同的浏览器,并且都有相同的问题。

编辑:

正在生成的这个列表在每一行都有表格。单击登录会打开一个选项卡并询问用户名和密码。但是第一行没有表单标签,所以它不是开始标签。

【问题讨论】:

  • 你能在你的帖子中添加你期望发生的事情吗?我发现很难看到您期望的结果。
  • 在外部编辑器中查看源代码,而不是 firebug。你在第一个循环中看到一个表单吗?
  • 好的,所以要调试,首先删除您在表单中使用的动态元素,例如 id="member_logincustomer_id?>" 等等.. as您的 html 标记似乎正确,您应该检查可能导致它的 php 变量和对象的动态值。
  • @gaurav 我已经测试过删除动态 php 代码。还是同样的问题。
  • 那么您在某处遇到了 html 格式错误。在 foreach 循环之前检查 html

标签: php html forms loops


【解决方案1】:

我找到了问题。搜索功能的标题中未写入表单结束标记。所以它选择了第一个表单结束标记,列表中的表单开始标记被挂起,所以它不起作用。

【讨论】:

  • 能否发一个解决方案的源代码?
【解决方案2】:

在 foreach 循环内的主表单标签之前使用空表单标签,然后 foreach 循环将删除第一个空表单标签,功能将正常工作。 例如:

<div>
    <form></form>
    <form id="member_login<?php echo $row1->customer_id?>" action="<?php echo $action;?>" method="post" >
        <input type="hidden" name="username" value="<?php echo $row1->username?>"/>
        <input type="hidden" name="password" value="<?php echo $row1->password?>"/>
        <input type="hidden" name="submitted" value="yes" />
    </form>
</div>

【讨论】:

  • 请在此处以文本形式(并使用反引号格式)发布任何解决方案,而不是链接图像!
猜你喜欢
  • 2015-08-10
  • 2012-06-12
  • 1970-01-01
  • 2017-12-12
  • 1970-01-01
  • 2013-04-10
  • 1970-01-01
  • 1970-01-01
  • 2017-12-19
相关资源
最近更新 更多