【问题标题】:How to display a loop inside the form?如何在表单内显示循环?
【发布时间】:2011-12-15 02:11:43
【问题描述】:

我想将查询结果显示到value=""

 for($record_count=0;$record_count<$record;$record_count++)
            { //loop for record count
                    ?>

    <TR>


       <TD CLASS="joblog-text"colspan=2 NOWRAP align="right">Invoice number or description <?php /*echo $id;*/echo $record_count;  ?></TD><!--#invPrefix#-->


                       <TD CLASS="joblog-text"colspan=2 NOWRAP>

                                       <INPUT TYPE="text" NAME="eg_description_<?php echo $record_count; ?>" Value="<?php 
                                       foreach ($invoice_no as  $node_inv_no) 
                                            {

                                               echo $node_inv_no->nodeValue;
                                            }
                                       ?>" size="10">

但文本框中的结果:

CI_INV000243005CI_INV000239562

我怎样才能使它成为第一个文本框= CI_INV000243005 第二个= CI_INV000239562

? 非常感谢

**<?php
       for($record_count=0;$record_count<$record;$record_count++)
            { //loop for record count
                    ?>

    <TR>

       <TD CLASS="joblog-text"colspan=2 NOWRAP align="right">Invoice number or description <?php /*echo $id;*/echo $record_count;  ?></TD><!--#invPrefix#-->
                       <TD CLASS="joblog-text"colspan=2 NOWRAP>
                       <?php                       
                       foreach ($invoice_no as  $node_inv_no) 
                            {   
                               $val = $node_inv_no->nodeValue;
                               echo '<INPUT TYPE="text" NAME="eg_description_' . $record_count. '" Value="' . $val . '" size="10">';
                            }
                        ?>
                                      <!-- <INPUT TYPE="text" NAME="eg_description_<?php //echo $record_count; ?>" Value="<?php //echo $node_inv_no->nodeValue;?>" size="10">-->

                       </TD>**

我怎样才能让它们一个接一个地显示而不是双重显示,从上到下而不是从左到右?

我想要: 发票编号或说明 0 = CI_INV000243005 发票编号或说明 1 = CI_INV000239562

目前它正在显示: 发票编号或说明 0 = CI_INV000243005 CI_INV000239562 发票编号或说明 1 = CI_INV000243005 CI_INV000239562

谢谢

<?php
$id=($_GET["clientID"]);
$max=($_GET["maxrecords"]);

echo "ID : ".$id."<br>";
echo "Max Records : ".$max."<br>";

$request_url = "http://10.21.13.12/solapp/documents/CINV/jadehttp.dll?SolApp&ClientID=$id&maxrecords=$max";
//$request_url = "http://10.21.13.12/solapp/documents/CINV/jadehttp.dll?SolApp&ClientID=42570935&maxrecords=100";
echo "Request URL : ".$request_url."<br>";


// Find only Posted status 
$doc = new DOMDocument;                                        // Create a new dom document
$doc->preserveWhiteSpace = false;                              // Set features
$doc->formatOutput = true;                                     // Create indents on xml

$doc->Load($request_url);

$xpath = new DOMXPath($doc);
$query = '//Document/Status[. = "Posted"]/../DocumentID';
$amount_due = $xpath->query($query2);                                 // A list of matched elements

//$query = '//Document/Status[. = "Posted"]';                       
$invoice_no = $xpath->query($query); 
$amount_due = $xpath->query($query2);                                 // A list of matched elements
$record =$invoice_no->length;                                // A list of matched elements

$invoiceArr = array();
foreach($invoice_no as  $node_inv_no) {   
  $invoiceArr[] = $node_inv_no->nodeValue;                               
}

$amount_dueArr = array();
foreach ($amount_due as  $node_amount_due) 
    {
        $amount_dueArr[] = $node_amount_due->nodeValue; 
    }

?>

<?php for($record_count=0;$record_count<$record;$record_count++) { ?>

<TR>

<TD CLASS="joblog-text"colspan=2 NOWRAP align="right">
Invoice number or description <?php /*echo $id;*/echo $record_count;  ?>
</TD>

<TD CLASS="joblog-text"colspan=2 NOWRAP>
<?php echo '<INPUT TYPE="text" NAME="eg_description_' . $record_count. '" Value="' . $invoiceArr[$record_count] . '" size="10"><br>'; ?>

</TD>


<td>
 <?php echo '<INPUT TYPE="text" NAME="eg_payamt_' . $record_count. ' Value="' . $amount_dueArr[$record_count] . '" size="10"><br>'; ?>
</td>


</TR>

<?php } ?>

我也想查看应付金额....但它是空字符串, 可能是我放错了循环吗? 有什么帮助吗?

非常感谢

我可以用 print_r($amount_dueArr[$record_count]); 打印出 $amount_dueArr[$record_count];

但是:

 <?php echo '<INPUT TYPE="text" NAME="eg_payamt_' . $record_count. '
 Value="' . print_r($amount_dueArr[$record_count]) . '"
 size="10"><br>';

显示空框,有人可以帮忙吗?

应该是这样的,我忘记了一个"标志

 <?php echo '<INPUT TYPE="text" NAME="eg_payamt_' . $record_count. '
 "Value="' . print_r($amount_dueArr[$record_count]) . '"
 size="10"><br>';

【问题讨论】:

    标签: php html xml forms loops


    【解决方案1】:

    您可以执行以下操作,但不建议这样做。

    <?php foreach ($invoice_no as  $node_inv_no) { ?>
        <INPUT TYPE="text" NAME="eg_description_<?php echo $record_count; ?>" Value="<?php $node_inv_no->nodeValue;?>" size="10">
    <?php } ?>  
    

    This post 将成为进一步改进您的代码和逻辑处理发布数据的一个很好的参考。 您可以将代码更改为:

    <?php foreach ($invoice_no as  $node_inv_no) { ?>
        <INPUT TYPE="text" NAME="eg_description_<?php echo $record_count; ?>[]" Value="<?php $node_inv_no->nodeValue;?>" size="10">
    <?php } ?>
    

    在服务器端,您将获得一组提交的值。
    注意:input 标签的name 字段的结尾[]

    【讨论】:

    • for($record_count=0;$record_count 跨度>
    【解决方案2】:

    试试这样的。使用以下嵌套循环。

    <?php
    
    foreach ($invoice_no as  $node_inv_no) {   
       $val = $node_inv_no->nodeValue;
       echo '<INPUT TYPE="text" NAME="eg_description_' . $record_count. '" Value="' . $val . '" size="10">';
    
    }
    
    ?>
    

    编辑:

    <?php
    $invoiceArr = array();
    foreach($invoice_no as  $node_inv_no) {   
      $invoiceArr[] = $node_inv_no->nodeValue;                               
    }
    ?>
    
    <?php for($record_count=0;$record_count<$record;$record_count++) { ?>
    
    <TR>
    
    <TD CLASS="joblog-text"colspan=2 NOWRAP align="right">
    Invoice number or description <?php echo $record_count;  ?>
    </TD>
    
    <TD CLASS="joblog-text"colspan=2 NOWRAP>
    <?php echo '<INPUT TYPE="text" NAME="eg_description_' . $record_count. '" Value="' . $invoiceArr[$record_count] . '" size="10">'; ?>                                          
    </TD>
    
    </TR>
    
    <?php } ?>
    

    【讨论】:

    • 它显示正常,但显示 4 次 / 双倍,但我怎样才能让它上下,而不是左右,只显示 2 次??
    • 好像是因为两个循环?
    • 好的。我以为您正在为每个外循环条目执行完整的内循环。
    • $invoice_no = $xpath->query($query); // 匹配元素列表
    • 我不能打印_r($invoice_no)
    猜你喜欢
    • 2012-06-12
    • 1970-01-01
    • 2020-06-15
    • 1970-01-01
    • 2019-08-27
    • 1970-01-01
    • 2013-02-13
    • 1970-01-01
    • 2016-09-06
    相关资源
    最近更新 更多