Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Web Development
You last visited: Today at 10:24

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



PDF Ausdrucken (Schleife in Variable??)

Discussion on PDF Ausdrucken (Schleife in Variable??) within the Web Development forum part of the Coders Den category.

Closed Thread
 
Old   #1

 
Givemoney's Avatar
 
elite*gold: 18
The Black Market: 677/0/0
Join Date: Feb 2012
Posts: 28,541
Received Thanks: 1,109
PDF Ausdrucken (Schleife in Variable??)

Guten Tag,

ich habe folgendes Problem.. Auf meiner Webseite, kann man eine Rechnung ausdrucken.

Auf der Rechnung kann ich aber nur ein Artikel anzeigen lassen, jedoch sollten mehrere Artikel dort stehen.

meine Schleife:
PHP Code:
    foreach($articleee as $arttt){
        echo 
"<tr><td>"$art['id'] . "    </td>";
        echo 
"<td>".$art['name'] .  "  </td>";
        echo 
"<td>".$art['price'] .  " </td>";
        echo 
"<td>".$art['supplier'].  " </td></tr>";
                
//echo "<hr>"; //Trennlinie /*/
            

Diese Schleife muss nun in die PDF Variable($my_html)

hier der PDF ausdruck Code (mit der Schleife) (Ganz unten steht die Foreach schleife.!!):

HTML Code:
function rechnung_ausgeben($kunde, $article){
		foreach($article as $art){
		//echo "<tr><td>". $art['id'] . "    </td>";
		//echo "<td>".$art['name'] .  "  </td>";
		//echo "<td>".$art['price'] .  " </td>";
		//echo "<td>".$art['supplier'].  " </td></tr>";
				//echo "<hr>"; //Trennlinie /*/
		$data['customername'] = $kunde['firstname']; 
		$data['lastname'] = $kunde['lastname'];
		$data['address'] = $kunde['street'];
		$data['plz'] = $kunde["plz"];
		$data['article'] = $art['name'];
		$data['price'] = $art['price'];
		$data['netto'] = $row['versandart'];
		$data['ust'] =  0;
		$data['ustsatz'] = 0;
		$data['brutto'] = 0;
		insert_invoice($data);
			}




require("phpToPDF.php"); 
// PUT YOUR HTML IN A VARI	ABLE
$my_html="<html lang=\"en\">
  <head>
    <meta charset=\"UTF-8\">
    <title>Sample Invoice</title>
    <link rel=\"stylesheet\" href=\"http://phptopdf.com/bootstrap.css\">
    <style>
      @import url(http://fonts.googleapis.com/css?family=Bree+Serif);
      body, h1, h2, h3, h4, h5, h6{
      font-family: 'Bree Serif', serif;
      }
    </style>
  </head>
  
  <body>
  
	<?php
		foreach($art as $artnew){
         <tr>
		   <td>$artnew[id]</td>
           <td>$artnew[name]</a></td>
           <td>$artnew[supplier]</td>
           <td>19%</td>
           <td>$artnew[price]</td>
         </tr>
		}
	?>
 </body>
Nun sollten mehrere Artikel angezeigt werden, leider ist das aber nicht der Fall. Ich denke mal das ich keine Schleife in eine Variable verwenden kann.

Meine Frage lautet nun: Wie bekomme ich es hin, das die foreach schleife in der Variable ($my_html) benutzt werden kann? Oder gibt es andere möglichkeiten?

Hier meine Quelle vom PDF Creator:
Givemoney is offline  
Old 10/21/2015, 12:45   #2

 
elite*gold: 2
Join Date: May 2010
Posts: 2,257
Received Thanks: 1,919
Hier fehlt ein echo:
PHP Code:
<?php
foreach($art as $artnew)
{
 echo
'
 <tr>
   <td>'
.$artnew[id].'</td>
   <td>'
.$artnew[name].'</a></td>
   <td>'
.$artnew[supplier].'</td>
   <td>19%</td>
   <td>'
.$artnew[price].'</td>
  </tr>'
;
}
?>
Ih¢sãs123 is offline  
Thanks
1 User
Old 10/21/2015, 12:47   #3
Moderator


 
elite*gold: 558
Join Date: Feb 2010
Posts: 6,544
Received Thanks: 1,424
Irgendwie sieht das teilweise so aus, also würdest du deinen eigenen Code nicht kennen.

Wie wäre es denn mit etwas in dieser Richtung? Das ist bloß eine korrigierte Version von deinem Code, damit du es hoffentlich verstehst. Das ist mit Sicherheit nicht die beste Lösung und ich kann dir auch nicht sagen ob das dein Problem löst, schließlich kenne ich nur diese Bruchstück deines Quellcodes.

Code:
$my_html="<html lang=\"en\">
  <head>
    <meta charset=\"UTF-8\">
    <title>Sample Invoice</title>
    <link rel=\"stylesheet\" href=\"http://phptopdf.com/bootstrap.css\">
    <style>
      @import url(http://fonts.googleapis.com/css?family=Bree+Serif);
      body, h1, h2, h3, h4, h5, h6{
      font-family: 'Bree Serif', serif;
      }
    </style>
  </head>
  
  <body>";
  
foreach($article as $art) {
	$my_html .= "<tr><td>" . $art['id'] . "</td>";
	$my_html .= "<td>" . $art['name'] .  "</td>";
	$my_html .= "<td>" . $art['supplier'] . "</td>";
	$my_html .= "<td>19%</td>";
	$my_html .= "<td>" . $art['price'] .  "</td></tr>";
}

$my_html .= "</body></html>";

Edit:
@Ih¢sãs123
Das ist mitten in einem String. Der PHP-Interpreter wird es auch mit echo niemals ausführen sondern einfach nur als Text ausgeben.

Außerdem ist "art" die Variable aus der ersten foreach-Schleife, ich kann mir also nicht vorstellen, dass plötzlich alle Artikel aus "article" in "art" stehen.
ComputerBaer is offline  
Thanks
1 User
Old 10/21/2015, 13:36   #4

 
Givemoney's Avatar
 
elite*gold: 18
The Black Market: 677/0/0
Join Date: Feb 2012
Posts: 28,541
Received Thanks: 1,109
@Ih¢sãs123 So Funktioniert das nicht.

@Comouterbaer Ich verstehe meinen Code, soweit Funktioniert auch alles tadellos.

Mein Script ergibt sinn... oder was daran ist nicht überadacht?.

Die übergabe von den Schleifen geht auch!. Alle Artikel stehen von article in art und dann von art zu artnew Trotz ersten der Schleife.

Ich teste nun deine Variante.


Ich möchte die Schleife nur in meinen PDF Code bekommen. Also in die my_html variable..


hier der vollständiger Example code von der PDF Seite.
PHP Code:
 <?php
 
// INCLUDE THE phpToPDF.php FILE
require("phpToPDF.php"); 

// PUT YOUR HTML IN A VARIABLE
$my_html="<html lang=\"en\">
  <head>
    <meta charset=\"UTF-8\">
    <title>Sample Invoice</title>
    <link rel=\"stylesheet\" href=\"http://phptopdf.com/bootstrap.css\">
    <style>
      @import url(http://fonts.googleapis.com/css?family=Bree+Serif);
      body, h1, h2, h3, h4, h5, h6{
      font-family: 'Bree Serif', serif;
      }
    </style>
  </head>
  
  <body>
    <div class=\"container\">
      <div class=\"row\">
        <div class=\"col-xs-6\">
          <h1>
            <a href=\"http://phptopdf.com\">            
            Logo here
            </a>
          </h1>
        </div>
        <div class=\"col-xs-6 text-right\">
          <h1>INVOICE</h1>
          <h1><small>Invoice #001</small></h1>
        </div>
      </div>
      <div class=\"row\">
        <div class=\"col-xs-5\">
          <div class=\"panel panel-default\">
            <div class=\"panel-heading\">
              <h4>From: <a href=\"#\">Your Name</a></h4>
            </div>
            <div class=\"panel-body\">
              <p>
                Address <br>
                details <br>
                more <br>
              </p>
            </div>
          </div>
        </div>
        <div class=\"col-xs-5 col-xs-offset-2 text-right\">
          <div class=\"panel panel-default\">
            <div class=\"panel-heading\">
              <h4>To : <a href=\"#\">Client Name</a></h4>
            </div>
            <div class=\"panel-body\">
              <p>
                Address <br>
                details <br>
                more <br>
              </p>
            </div>
          </div>
        </div>
      </div>
      <!-- / end client details section -->
      <table class=\"table table-bordered\">
        <thead>
          <tr>
            <th>
              <h4>Service</h4>
            </th>
            <th>
              <h4>Description</h4>
            </th>
            <th>
              <h4>Hrs/Qty</h4>
            </th>
            <th>
              <h4>Rate/Price</h4>
            </th>
            <th>
              <h4>Sub Total</h4>
            </th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td>Article</td>
            <td><a href=\"#\">Title of your article here</a></td>
            <td class=\"text-right\">-</td>
            <td class=\"text-right\">$200.00</td>
            <td class=\"text-right\">$200.00</td>
          </tr>
          <tr>
            <td>Template Design</td>
            <td><a href=\"#\">Details of project here</a></td>
            <td class=\"text-right\">10</td>
            <td class=\"text-right\">75.00</td>
            <td class=\"text-right\">$750.00</td>
          </tr>
          <tr>
            <td>Development</td>
            <td><a href=\"#\">WordPress Blogging theme</a></td>
            <td class=\"text-right\">5</td>
            <td class=\"text-right\">50.00</td>
            <td class=\"text-right\">$250.00</td>
          </tr>
        </tbody>
      </table>
      <div class=\"row text-right\">
        <div class=\"col-xs-2 col-xs-offset-8\">
          <p>
            <strong>
            Sub Total : <br>
            TAX : <br>
            Total : <br>
            </strong>
          </p>
        </div>
        <div class=\"col-xs-2\">
          <strong>
          $1200.00 <br>
          N/A <br>
          $1200.00 <br>
          </strong>
        </div>
      </div>
      <div class=\"row\">
        <div class=\"col-xs-5\">
          <div class=\"panel panel-info\">
            <div class=\"panel-heading\">
              <h4>Bank details</h4>
            </div>
            <div class=\"panel-body\">
              <p>Your Name</p>
              <p>Bank Name</p>
              <p>SWIFT : --------</p>
              <p>Account Number : --------</p>
              <p>IBAN : --------</p>
            </div>
          </div>
        </div>
        <div class=\"col-xs-7\">
          <div class=\"span7\">
            <div class=\"panel panel-info\">
              <div class=\"panel-heading\">
                <h4>Contact Details</h4>
              </div>
              <div class=\"panel-body\">
                <p>
                  Email :  <br><br>
                  Mobile : -------- <br><br><br>
                </p>
                <h4>Payment should be made by Bank Transfer</h4>
              </div>
            </div>
          </div>
        </div>
      </div>
      <br><br>
      This is a sample invoice.<br><br>
      In this example the css style is pulled from phptopdf.com/bootstrap.css
      You could also put all CSS in the header wrapped in <xmp> < style > </xmp> tags
    </div>
  </body>
</html>"
;

// SET YOUR PDF OPTIONS -- FOR ALL AVAILABLE OPTIONS, VISIT HERE:  http://phptopdf.com/documentation/
$pdf_options = array(
  
"source_type" => 'html',
  
"source" => $my_html,
  
"action" => 'save',
  
"save_directory" => '',
  
"file_name" => 'pdf_invoice.pdf');

// CALL THE phpToPDF FUNCTION WITH THE OPTIONS SET ABOVE
phptopdf($pdf_options);

// OPTIONAL - PUT A LINK TO DOWNLOAD THE PDF YOU JUST CREATED
echo ("<a href='pdf_invoice.pdf'>Download Your PDF</a>");
?>
Givemoney is offline  
Old 10/21/2015, 14:15   #5

 
elite*gold: 2
Join Date: May 2010
Posts: 2,257
Received Thanks: 1,919
Vorab ich habe es nicht gelesen (bin gerade Arbeiten) und nur gesehen das man in php nicht einfach Inhalt ausgeben kann ohne echo oder es einer Variable zuzuweisen.

Du musst der Variable $my_html einfach die ergebenen Schleifenwerte zuweisen wie ComputerBaer es gemacht hat mit .=

Kann dir heute abend helfen per PN über Skype.

MfG. erstmal jetzt Besprechung.
Ih¢sãs123 is offline  
Thanks
1 User
Old 10/21/2015, 14:16   #6
Moderator


 
elite*gold: 558
Join Date: Feb 2010
Posts: 6,544
Received Thanks: 1,424
Quote:
Originally Posted by Givemoney View Post
Mein Script ergibt sinn... oder was daran ist nicht überadacht?.
Ich habe nie gesagt, dass es keinen Sinn macht, aber du hast recht, es gibt etwas das keinen Sinn macht. Ich sagte "[...] du deinen eigenen Code nicht kennen", dazu mehr nach dem nächsten Zitat. Jetzt kurz zu "kein Sinn".

Du hast diese Schleife:
Code:
foreach($article as $art) {
    $data['customername'] = $kunde['firstname']; 
    $data['lastname'] = $kunde['lastname'];
    $data['address'] = $kunde['street'];
    $data['plz'] = $kunde["plz"];
    $data['article'] = $art['name'];
    $data['price'] = $art['price'];
    $data['netto'] = $row['versandart'];
    $data['ust'] =  0;
    $data['ustsatz'] = 0;
    $data['brutto'] = 0;
	
    insert_invoice($data);
}
  1. Warum gehst du über alle Artikel, wenn dich nur der letzte interessiert? Oder warum überhaupt die Artikel?
  2. Was ist $row? Die Variable wird weder übergeben, noch in der Funktion erstellt.
  3. Welchen Zweck erfüllt "insert_invoice"? Schreibt das die Rechnung mit ihrem letzten Artikel in die Datenbank? Sollte die Rechnung nicht eher mit allen Artikeln aus der Datenbank kommen?

Der selbe Code könnte auch so aussehen und ist damit (vorallem bei großen sehr Rechnungen) auch noch schneller. Ja, die Funktion ist identisch.
Code:
$data['customername'] = $kunde['firstname']; 
$data['lastname'] = $kunde['lastname'];
$data['address'] = $kunde['street'];
$data['plz'] = $kunde["plz"];
$data['article'] = $article[count(article)-1]['name'];
$data['price'] = $article[count(article)-1]['price'];
$data['netto'] = $row['versandart']; // ???
$data['ust'] =  0;
$data['ustsatz'] = 0;
$data['brutto'] = 0;
	
insert_invoice($data);
Quote:
Originally Posted by Givemoney View Post
Die übergabe von den Schleifen geht auch!. Alle Artikel stehen von article in art und dann von art zu artnew Trotz ersten der Schleife.
Wenn wir mal davon absehen, dass die Schleife in dem String steckt und deshalb nicht funktionieren kann, sieht dein Code so aus:
Code:
function rechnung_ausgeben($kunde, $article) {
	foreach($article as $art) {
		// [...]
	}
	
	foreach($art as $artnew) {
		// [...]
	}
}
Jetzt stellen wir uns mal vor, dass in $article mehrere Artikel sind:
1, Tisch, 125
3, Stuhl, 68
8, Maus, 34

Nachdem die erste Schleife vorbei ist, steht in $art dann:
8, Maus, 34

Die Schleife über $art wird dann folgende Daten liefern:
8
Maus
34

Und jeder Zugriff auf $artnew[xxx] wird in einem Fehler enden, weil keiner der Werte ein Assoziatives-Array ist.

Quote:
Originally Posted by Givemoney View Post
Ich möchte die Schleife nur in meinen PDF Code bekommen. Also in die my_html variable..
Ich habe meinen Code zwar nicht getestet, bin mir aber sicher, dass er genau das macht.
ComputerBaer is offline  
Thanks
1 User
Old 10/21/2015, 16:20   #7

 
Givemoney's Avatar
 
elite*gold: 18
The Black Market: 677/0/0
Join Date: Feb 2012
Posts: 28,541
Received Thanks: 1,109
Erstmal herzlichen dank, für eure hilfe. Die Lösung war die korrigierte Version von Computerbaer.

Nun zu deinen Punkten.
$row['versandart']; also $row wird nicht übergeben richtig. Das hat auch seinen Grund.. Weil ich noch weitere Funktionen schreiben und übergeben muss.

insert_invoice wie du schon vermutest, schreibt ALLE* Artikel in die DB.

Ich bedanke mich besonders bei Computerbaer für seine Kritik und seine Hilfsbereitschaft.

Für das nächste mal werde ich den Code so Posten das keine weiteren missverständnisse auftreten.
Givemoney is offline  
Closed Thread


Similar Threads Similar Threads
PHP Schleife, Button, Variable Zuweisung und Ausgabe
02/11/2015 - Web Development - 2 Replies
Hey Ich hab eine Schleife in php in der Buttons erzeugt werden. Jeder Button bekommt auch eine Funktion wenn man auf den Button klickt wird $offers $bez hinzugefügt (zumindest sollte) und danach sollen dann alle auf gelistet , aber ich hab kein plan wie. Schleife aktuell: <form action="<?php $_SERVER ?>" method="post"> <?php $n = 0; $offers = ""; foreach($items as $item) { $bez = $item;
Fehler suche (Anfangsprogramm) If schleife in einer If-Schleife
10/16/2013 - .NET Languages - 8 Replies
Wie mache ich eine If-Schleife in einer if-schleife? Danke^^ using System; using System.Collections.Generic; using System.Linq; using System.Text;
Variable in ProcessExist Shellexecute schleife
06/19/2013 - AutoIt - 3 Replies
Moin! Wie kann man denn bitte eine Variable für eine solche Schleife benutzen: Case $Select $Launcher = FileOpenDialog("Select your AA Launcher exe",@UserName & "\Desktop", "Applications (*.exe)",1 + 2) Case $restart EndSwitch If $bCheck Then If Not ProcessExists($Launcher) And Not ProcessExists("bf3.exe") Then ;~ Run(@DesktopDir & "\BlaueKugel.exe")
Quest-> Schleife in einer Schleife?
04/15/2013 - Metin2 Private Server - 3 Replies
Hallo Community, ist es möglich in einer bestehenden Schleife eine weitere einzufügen die unabhängig von der 1. schleife agiert?



All times are GMT +2. The time now is 10:24.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.