【问题标题】:Only post first result of while loop仅发布 while 循环的第一个结果
【发布时间】:2015-10-01 01:26:29
【问题描述】:

我正在使用 while 循环来显示查询结果。

while 循环运行良好。

在隐藏字段中,我想将 etj12idsinging 的值发布到另一个页面。

我正在使用 javascript 从链接提交表单。

问题是无论我点击哪一行,它只发布第一个值。我该怎么办?

while($row= mysql_fetch_array($result))
{
    $SIidsinging = $row['etj12idsinging'];
?>
<tr>
    <td><?php echo $SIidnumber; ?></td>
    <td><?php echo $SIidtype; ?></td>
    <TD>
        <form method='post' name='form1' id="form1" onclick="submitform()">
            <input type="hidden" name='name2' id='name2' value="<?php echo $row['etj12idsinging']; ?>"></a>
            <input type="button" value="Edit" class="btn-warning"/>
        </form>
    </TD>
</tr>

我用来提交表单的javascript:

function submitform()
{
    var name2=$('#name2').val();
    window.alert(name2);//it keeps having first result
    $('#form1').submit(); 
}

【问题讨论】:

  • 请重新表述您的问题,因为不清楚您在问什么。
  • Id 必须是唯一的。这正是您的问题,因为选择器只会返回 ID 为 name2/form1 的第一个元素
  • 如果你想通过邮件发送所有行,我更喜欢你创建输入数组(比如&lt;input type='hidden' name='fieldname[]' value='your row' /&gt;)。并且'
    ' & '
    ' 必须放在你的while的上面和下面。
  • @Onilol 我的问题类似于这个问题stackoverflow.com/questions/23902287/…。我尝试跟随它,但它不起作用
  • @Andreas 知道这就是问题所在。那么如何解决这个问题呢?

标签: javascript php while-loop


【解决方案1】:

您可以使用如下代码:

<?php 
    while($row= mysql_fetch_array($result)) {

        $SIidsinging = $row['etj12idsinging'];
?>

    <form method='post' name='form1' id="form1" onclick="submitform()">

        <tr>
            <td><?php echo $SIidnumber; ?></td>
            <td><?php echo $SIidtype; ?></td>
            <TD>

                    <input type="hidden" name='name' value="<?php echo $row['etj12idsinging']; ?>"></a>
                    <input type="submit" value="Edit" class="btn-warning"/>

            </TD>
        </tr>

    </form>

<?php
    }
?>

现在在您的帖子结果中,您可以通过以下方式获取此数组:

<?php
    $names = $_POST[ 'name' ];
?>

【讨论】:

  • 如果我将 放在 while 范围之外,那么当我将只有 1 个按钮用于超过 1 个查询结果时我需要每个结果的按钮?
  • 它不起作用,按钮甚至没有运行该功能。当我将
    移到 上方时,它会运行该函数,但是当我在输入标签上保留 id="name2" 时,它仍然只返回第一个结果
  • 如果需要,您只想在警报消息中显示隐藏值。请告诉我修改上面的代码来解决这个问题。
  • 我真的很抱歉,如果它仍然只返回第一个结果,我有提醒知道发布到其他页面的值。
  • 没问题 :) ,我明白了。您必须从 &lt;form&gt; 标记中删除 idonsubmit ,因为在您的 javascript 中,您设置了 var name2=$('#name2').val(); 。页面中的ID,只能设置一次,调用时只获取第一个值。
猜你喜欢
  • 2014-07-17
  • 2017-02-02
  • 1970-01-01
  • 2018-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-09
相关资源
最近更新 更多