Как отобразить цикл внутри формы? - PullRequest
0 голосов
/ 15 декабря 2011

Я хочу отобразить результат запроса в 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 } ?>

Я тоже хочу посмотреть сумму выплаты ... но на ней пустая строка, Может быть, я поставил неправильную петлю? Любая помощь?

спасибо большое

Я могу распечатать $ 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 голосов
/ 15 декабря 2011

Вы можете сделать следующее, но это не рекомендуется.

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

Этот пост станет хорошим справочным материалом для дальнейшего улучшения вашего кода и логики обработки опубликованных данных.Вы можете изменить свой код на:

<?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тег.

0 голосов
/ 15 декабря 2011

Попробуйте что-нибудь подобное. Используйте следующий вложенный цикл.

<?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">';

}

?>

EDIT:

<?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 } ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...