如何在表单中显示循环?

时间:2011-12-15 02:11:44

标签: php html xml forms loops

我想在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 } ?>

我想查看pay ammount:....但是它上面是空字符串, 可能是我错了循环? 有帮助吗?

非常感谢

我可以打印出$ amount_dueArr [$ record_count]:print_r($ 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>';

2 个答案:

答案 0 :(得分:0)

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

<?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 } ?>

答案 1 :(得分:0)

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

<?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 } ?>

在服务器端,您将获得一系列提交的值 注意:[]代码的name字段的结尾input