Toon posts:

[PHP] variabelen copieren

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een een script die bestelde producten weergeeft.

Een kleine deel code die het echo'en doet is
code:
1
2
3
4
5
6
7
8
9
10
11
...................................................
..................................................
echo "<TR><TD>".$contents[product][$x]."</TD><TD>".$contents[price][$x]."</TD>\n";
       echo "<TD><INPUT TYPE=text size=3 name=quantity[$product] ";
       echo "value=\"".$contents[quantity][$x]."\"></TD>";
       echo "<TD>\$".$contents[total][$x]."</TD>\n";
       echo "<TD><A HREF=\"view_cart.php?remove=".urlencode($contents[product][$x]); 
       echo "".(!$ShoppingCart? "&session=$session":"")."\">Remove</A>";
       $x ++;
........................
.......................


Nu wou ik de uitkomst van de de code opvangen en alles in 1 string zetten (dus niet alles in een array). maar kom ik er niet uit. Note: ergens daarboven word er een funcie aangeroepen die de inhoud maakt voor de prijs, hoeveelheid en totaal. Denk niet dat ik die nodig heb omdat ik alleen maar de echo's op hoef te vangen en in een string moet stoppen.

DIe variabele string kan ik weer gebruiken in mail.php die de rest afhangt.

Verwijderd

Misschien alle output achter elkaar plakken, of strings aan elkaar plakken met een . (concatenator), en dan aan een variabele toekennen?
Zoiets dus:
$blaat = $blaat1.$blaat2.$blaat3."aeouaoeuaeu";

Verwijderd

Dat moet wel lukken met output buffering:
PHP:
1
2
3
4
5
6
ob_start();

// Je output hier

$contents = ob_get_contents();
ob_end_clean();

$contents is je output.

Verwijderd

Topicstarter
Het werkt niet goed met wat nieko voorsteld. Ik heb
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
  if($contents[product][0] != "")
  {
    $x = 0;
    while($x != $cart->num_items($table,$session))
    {
       echo "<TR><TD>".$contents[product][$x]."</TD><TD>".$contents[product][$x]."</TD>\n";
       echo "<TD><INPUT TYPE=text size=3 name=quantity[$product] ";
       echo "value=\"".$contents[quantity][$x]."\"></TD>";
       echo "<TD>\$".$contents[total][$x]."</TD>\n";
       echo "<TD><A HREF=\"view_cart.php?remove=".urlencode($contents[product][$x]); 
       echo "".(!$ShoppingCart? "&session=$session":"")."\">Remove</A>";
 
       $bestel = $contents[product][$x].$contents[product][$x].$contents[quantity][$x].$contents[total][$x];
              
       $x ++;       
    }   
    echo "</TD><TR></TABLE>"; 
    echo "<BR><B>Totale Bestel Hoeveelheid: \$".$cart->cart_total($table,$session)."</B>";
    echo "<BR><INPUT TYPE=submit name=modify value=\"Herbereken Order\">";
    echo "<BR><BR>";



Ik krijg in de andere file die $bestel uitleest alleen de 1 na laatste produkt name en daarvan de eerste woord ervan. Kan het nog anders?

UPDATE: krijg met ob_start(); alleen de "<TR> " te zien?

;(

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 14-07 14:28

thomaske

» » » » » »

zo kan je strings uitbreidden:
PHP:
1
$bestel = $bestel . " extratekst";


nog iets makkelijker is dit (doet hetzelfde):
PHP:
1
$bestel .= " extratekst";

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


  • creative8500
  • Registratie: September 2001
  • Laatst online: 03-01 16:54

creative8500

freedom.

Je moet alleen niet al bij de _eerste_ dat '.=' gebruiken! Eerst de string definieren, en dáárna pas uitbreiden. :)

  • sebas
  • Registratie: April 2000
  • Laatst online: 16-12-2025
Ligt eraan. Php heeft er over het algemeen geen probleem mee als je een string voor het eerst met .= definieerd. Het staat alleen niet zo netjes, je kan hierdoor problemen krijgen als dit in een loop zit en je tussendoor de bufferstring meerdere keren print. Dan krijg je een hoop dubele output. Om dit te vermijden kun je hem natuurlijk ook na het printen leeggooien. Dat je hem eerst met = en niet met .= moet definieren is echter niet waar.

Jouw probleem kun je makkelijk oplossen door elke keer ipv echo de nieuwe 'output' in een andere string op te slaan en deze aan het eind te printen of met output buffering werken.

Everyone complains of his memory, no one of his judgement.


  • stekkel
  • Registratie: Augustus 2001
  • Laatst online: 12-07 11:54
sebas schreef op 02 november 2002 @ 00:45:
Ligt eraan. Php heeft er over het algemeen geen probleem mee als je een string voor het eerst met .= definieerd. Het staat alleen niet zo netjes, je kan hierdoor problemen krijgen als dit in een loop zit en je tussendoor de bufferstring meerdere keren print. Dan krijg je een hoop dubele output. Om dit te vermijden kun je hem natuurlijk ook na het printen leeggooien. Dat je hem eerst met = en niet met .= moet definieren is echter niet waar.

Jouw probleem kun je makkelijk oplossen door elke keer ipv echo de nieuwe 'output' in een andere string op te slaan en deze aan het eind te printen of met output buffering werken.
PHP heeft daar WEL problemen mee. Zet de error reporting maar eens op E_ALL.
Verder is het zo dat niet juist geinitialiseerde variablen veeel trager geprocessed worden door PHP.

Dus ALTIJD variabelen juist initialiseren!!!!

  • sebas
  • Registratie: April 2000
  • Laatst online: 16-12-2025
Ja, het is idd netter om vars goed te definieren, ben ik het absoluut mee eens. Maar parse errors oid. krijg je door dit soort fratsen niet. hooguit her en der een warning en wat inefficiente code ;)

Everyone complains of his memory, no one of his judgement.

Pagina: 1