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

jackie777Asked:
Who is Participating?
 
Michel PlungjanConnect With a Mentor IT ExpertCommented:
But that is what I did, I just used the smarter [] notation which creates PHP arrays

Try this - convert the quantity to an integer using intval:



<?php
  for($i=0; $i<=4; $i++) {
    if(intval($_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]; ?>">
    <? } 
  }?>
 
e.g.
 
<input type="hidden" name="L_QTY[]" value="First filled quantity">
<input type="hidden" name="L_NAME[]" value="First filled name">
<input type="hidden" name="L_DESC[]" value="First filled description">
<input type="hidden" name="L_QTY[]" value="Second filled quantity">
<input type="hidden" name="L_NAME[]" value="Second filled name">
<input type="hidden" name="L_DESC[]" value="Second filled description">

Open in new window

0
 
Michel PlungjanIT ExpertCommented:
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

0
 
Michel PlungjanIT ExpertCommented:
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

0
[Webinar] Improve your customer journey

A positive customer journey is important in attracting and retaining business. To improve this experience, you can use Google Maps APIs to increase checkout conversions, boost user engagement, and optimize order fulfillment. Learn how in this webinar presented by Dito.

 
jackie777Author Commented:
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

0
 
jackie777Author Commented:
I don't need to pass along the entire <table>, only the values of ['L_QTY'.$i] ['L_NAME'.$i] ['L_DESC'.$i]
0
 
Michel PlungjanIT ExpertCommented:
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

0
 
jackie777Author Commented:
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

0
 
Michel PlungjanIT ExpertCommented:
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
0
 
webvogelCommented:
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

0
 
Michel PlungjanIT ExpertCommented:
That does not make sense. To pass the value as name.
0
 
webvogelCommented:
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

0
 
jackie777Author Commented:
That worked, Thanks!
0
 
webvogelCommented:
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

0
All Courses

From novice to tech pro — start learning today.