Link to home
Start Free TrialLog in
Avatar of jackie777
jackie777

asked on

formatting php output in to a variable

Hi,

I have been trying unsuccessfully to get the output from the code below into a single variable. I need to be able to pass the output from the  info shown here in an email receipt. I have been trying to get the output into a hidden form field which I could then pass along. Would this be a good way to do it? If so how?
<?php
  for($i=0; $i<=4; $i++)
    if($_REQUEST['L_QTY'.$i]>=1)
    {
      ?>
      <tr>
        <td align="left" valign="top"><?=$_REQUEST['L_QTY'.$i]?></td>
        <td align="left" valign="top"> </td>
        <td align="left" valign="top"><?=$_REQUEST['L_NAME'.$i]?></td>
        <td align="left" valign="top"> </td>
        <td align="left" valign="top"><?=$_REQUEST['L_DESC'.$i]?></td>
      </tr>
      <?php
    }
  ?>

Open in new window

Avatar of Michel Plungjan
Michel Plungjan
Flag of Denmark image

You mean

<?php
  $htmlString = "<table>";
  for($i=0; $i<=4; $i++) {
    if($_REQUEST['L_QTY'.$i]>=1)
    {
      $htmlString .= '<tr>';
      $htmlString .= '<td align="left" valign="top">'.$_REQUEST['L_QTY'.$i].'</td>';
      $htmlString .= '<td align="left" valign="top"> </td>';
      $htmlString .= '<td align="left" valign="top">'.$_REQUEST['L_NAME'.$i].'</td>';
      $htmlString .= '<td align="left" valign="top"> </td>';
      $htmlString .= '<td align="left" valign="top">'.$_REQUEST['L_DESC'.$i].'</td>';
      $htmlString .= '</tr>';
    }
  }
  $htmlString.='</table>';
  echo $htmlString;
?>

Open in new window

or even

<?php
  $htmlString = "<table>";
  for($i=0; $i<=4; $i++) {
    if($_REQUEST['L_QTY'.$i]>=1)
    {
      $htmlString .= '<tr valign="top">';
      $htmlString .= '<td>'.$_REQUEST['L_QTY'.$i].'</td>';
      $htmlString .= '<td>&nbsp;</td>';
      $htmlString .= '<td>'.$_REQUEST['L_NAME'.$i].'</td>';
      $htmlString .= '<td>&nbsp;</td>';
      $htmlString .= '<td>'.$_REQUEST['L_DESC'.$i].'</td>';
      $htmlString .= '</tr>';
    }
  }
  $htmlString.='</table>';
  echo $htmlString;
?>

Open in new window

Avatar of jackie777
jackie777

ASKER

Thanks mplungjan

I think that might be the right idea, but I still cannot seem to get the value for $htmlString to pass to the next page. Here is how I formatted my hidden input.




<input type="hidden" name="products" value="<? $htmlString ?>" />

Open in new window

I don't need to pass along the entire <table>, only the values of ['L_QTY'.$i] ['L_NAME'.$i] ['L_DESC'.$i]
how about



<?php
  for($i=0; $i<=4; $i++) {
    if($_REQUEST['L_QTY'.$i]>=1)
    { ?>
      <input type="hidden" name="L_QTY[]" value="<? echo $_REQUEST['L_QTY'.$i]; ?>">
      <input type="hidden" name="L_NAME[]" value="<? echo $_REQUEST['L_NAME'.$i]; ?>">
      <input type="hidden" name="L_DESC[]" value="<? echo $_REQUEST['L_DESC'.$i]; ?>">
    <? } 
  }?>

Open in new window

No, that didn't work either, I did manage to figure out how to pass along all the variables, however I am now having trouble writing an if statement to only pass along the variables that have a L_QTY value that is greater than 0
<input type="hidden" name="L_QTY0" value="<? echo $_REQUEST['L_QTY0']; ?>" />
<input type="hidden" name="L_NAME0" value="<? echo $_REQUEST['L_NAME0']; ?>" />
<input type="hidden" name="L_DESC0" value="<? echo $_REQUEST['L_DESC0']; ?>" />
<input type="hidden" name="L_QTY1" value="<? echo $_REQUEST['L_QTY1']; ?>" />
<input type="hidden" name="L_NAME1" value="<? echo $_REQUEST['L_NAME1']; ?>" />
<input type="hidden" name="L_DESC1" value="<? echo $_REQUEST['L_DESC1']; ?>" />
<input type="hidden" name="L_QTY2" value="<? echo $_REQUEST['L_QTY2']; ?>" />
<input type="hidden" name="L_NAME2" value="<? echo $_REQUEST['L_NAME2']; ?>" />
<input type="hidden" name="L_DESC2" value="<? echo $_REQUEST['L_DESC2']; ?>" />
<input type="hidden" name="L_QTY3" value="<? echo $_REQUEST['L_QTY3']; ?>" />
<input type="hidden" name="L_NAME3" value="<? echo $_REQUEST['L_NAME3']; ?>" />
<input type="hidden" name="L_DESC3" value="<? echo $_REQUEST['L_DESC3']; ?>" />
<input type="hidden" name="L_QTY4" value="<? echo $_REQUEST['L_QTY4']; ?>" />
<input type="hidden" name="L_NAME4" value="<? echo $_REQUEST['L_NAME4']; ?>" />
<input type="hidden" name="L_DESC4" value="<? echo $_REQUEST['L_DESC4']; ?>" />

Open in new window

If you add the [], php makes it into an array for you

If you need to check a string you might want to make it a number first - I do not have the php syntax to do that
I don't know exaktly where the problem is. You have to make a hidden input field for every variable and not for the hole html code.

If you need this html code more than once, you can make a function.

But if it is only a display site, you can send your mail direktly or not?

Try this:
<?php
  for($i=0; $i<=4; $i++)
    if($_REQUEST['L_QTY'.$i]>=1)
    {
      ?>
      <input type="hidden" name="<?=$_REQUEST['L_QTY'.$i]?>" value="<?=$_REQUEST['L_QTY'.$i]?>" />
      <input type="hidden" name="<?=$_REQUEST['L_NAME'.$i]?>" value="<?=$_REQUEST['L_NAME'.$i]?>" />
      <input type="hidden" name="<?=$_REQUEST['L_DESC'.$i]?>" value="<?=$_REQUEST['L_DESC'.$i]?>" />
      <?php
    }
  ?>

Open in new window

That does not make sense. To pass the value as name.
Sorry, I'am tired
<?php
  for($i=0; $i<=4; $i++)
    if($_REQUEST['L_QTY'.$i]>=1)
    {
      ?>
      <input type="hidden" name="<?='L_QTY'.$i?>" value="<?=$_REQUEST['L_QTY'.$i]?>" />
      <input type="hidden" name="<?='L_NAME'.$i?>" value="<?=$_REQUEST['L_NAME'.$i]?>" />
      <input type="hidden" name="<?='L_DESC'.$i?>" value="<?=$_REQUEST['L_DESC'.$i]?>" />
      <?php
    }
  ?>

Open in new window

ASKER CERTIFIED SOLUTION
Avatar of Michel Plungjan
Michel Plungjan
Flag of Denmark image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
That worked, Thanks!
My english is not very good.

I like the [] notation too. But maybe he need the combination of the name (1,2,3,4) and the value.

<?php
  for($i=0; $i<=4; $i++) {
    if(intval($_REQUEST['L_QTY'.$i])>=1)
    { ?>
      <input type="hidden" name="L_QTY[<?=$i?>]" value="<? echo $_REQUEST['L_QTY'.$i]; ?>">
      <input type="hidden" name="L_NAME[<?=$i?>]" value="<? echo $_REQUEST['L_NAME'.$i]; ?>">
      <input type="hidden" name="L_DESC[<?=$i?>]" value="<? echo $_REQUEST['L_DESC'.$i]; ?>">
    <? } 
  }?>

Open in new window