informationen oder variablen mit php uebergeben

mänu

Grünschnabel
hallo zusammen,

ich stehe vor einem problem, bei dem ich nicht weiterkomme.
ich habe eine php datei (interaktivesedcard.php), die ein layout einer sedcard darstellt. der nutzer kann diese php datei per drag and drop mit bildern fuellen, die ihm gefallen.
dann habe ich eine weitere php datei (pdfvorlage.php), die als vorlage zur konvertierung in pdf dient.

nun gibt es in der ersten datei einen button, der die pdf generieren lassen soll indem er createpdf.php aufruft:
PHP:
<form method="POST" action="createpdf.php">
<input type="submit" name="start_pdf" value="pdf generieren">
</form>

in createpdf stehen infos zur formatierung der pdf datei und dass die vorlage pdfvorlage.php verwendet werden soll.

interaktivesedcard.php enthaelt bspw folgende informationen(je nachdem welche bilder gewaehlt werden aendert sich dies bzgl des img src):
PHP:
/* im header wurden ein  javascript und ein css eingebunden*/
<div id="diesedcard">
   <div id="hochformatbild1"><img src="http://www.tutorials.de/images/2.jpg" width="112" height="170"> </div>
   <div id="hochformatbild2"><img src="http://www.tutorials.de/images/11.jpg" width="112" height="170"> </div>
   <div id="hochformatbild3"><img src="http://www.tutorials.de/images/7.jpg" width="112" height="170"> </div>
   <div id="querformatbild1"><img src="http://www.tutorials.de/images/13.jpg" width="170" height="113"> </div>
   <div id="hochformatbild4"><img src="http://www.tutorials.de/images/15.jpg" width="112" height="170"> </div>
   <div id="hochformatbild5"><img src="http://www.tutorials.de/images/4.jpg" width="112" height="170"> </div>
   <div id="hochformatbild6"><img src="http://www.tutorials.de/images/19.jpg" width="112" height="170"> </div>
</div>

pdfvorlage.php sieht so aus:
PHP:
<style type="text/css">
<!--
css formatierung, die in pdf uebernommen/uebersetzt wird
-->
</style>
<page>
   <div id="diesedcard">
      <div id="hochformatbild1"> </div>
      <div id="hochformatbild2"> </div>
      <div id="hochformatbild3"> </div>
      <div id="querformatbild1"> </div>
      <div id="hochformatbild4"> </div>
      <div id="hochformatbild5"> </div>
      <div id="hochformatbild6"> </div>
   </div>
</page>
dies wird dann mittels http://html2pdf.fr/de durch den aufruf von createpdf.php in ein pdf umgewandelt.

damit das ganze funktioniert muessen die pfade der ausgewaehlten bilder von interaktivesedcard.php an pdfvorlage.php uebergeben werden. dazu kann ich meines wissens php verwenden, kenn mich aber leider zu wenig aus. ein ansatz war preg_match_all zu verwenden...leider erfolglos.

ich bin ueber jede hilfe dankbar!!

viele gruesse
manu
 
Zuletzt bearbeitet von einem Moderator:
Du musst die Bilder doch ans PHP-Skript weitergeben.
Das kannst du per JavaScript machen.

Aber wie wolltest du das mit preg_match_all() lösen?
 
ueber preg_match_all kann ich mir doch alle src ausgeben lassen oder nicht? wie auch immer, funktioniert hats auf jeden fall nicht.

die bilder per javascript ans php skript weitergeben?d.h. den pfad der bilder oder wie kann ich mir das vorstellen?
 
ich habe es nun hinbekommen, dass die bilder ausgelesen werden. ich habe sie in die variablen iscbild1 bis iscbild7 verpackt. nun gibts ein problem beim uebertragen zur php datei. ich habe es bisher immer nur mit der iscbild1 variable versucht (also nur einer von sieben stueck):
PHP:
<form method="post" action="createpdf.php?bild1="iscbild1>
              <input type="submit" name="start_pdf" value="pdf generieren" onmouseover="getimages()">
        </form>

dadurch soll folgendes passieren:
wenn man mit der maus auf den button faehrt werden die src der ausgesuchten bilder in die variablen gepackt. zusammen mit dem aufruf von createpdf sollen die variablen (im test immer nur die erste) mitgegeben werden, sodass sie in createpdf verwendet werden koennen.

getestet habe ich das mit:
PHP:
<?php  
echo $_GET["bild1"];
  ?>

allerdings kommt die variable nicht an....

wenn ich nun
PHP:
window.location.href = "createpdf.php?bild1="+iscbild1;
in die funktion getimages() mit reinschreibe, funktioniert es...allerdings bei mouseover. wenn ich onmouseover in onclick aendere kommt wieder nichts an, weil action ebenfalls oder mit hoeherer prioritaet ausgefuehrt wird.

ich hoffe es kann mir jemand nen tipp geben.

gruesse

manu
 
Zuletzt bearbeitet von einem Moderator:
Ich würde das Event onSubmit im form-Tag einsetzen (entferne das im Button):
HTML:
<form onSubmit="getimages(); return true";>
Somit wird auf jeden Fall zuerst getimages() aufgerufen und erst nach dessen Ende das Formular abgeschickt.

ueber preg_match_all kann ich mir doch alle src ausgeben lassen oder nicht? wie auch immer, funktioniert hats auf jeden fall nicht.
PHP ist serverseitig. Du bekommst per Formular doch nicht den ganzen HTML-Code inklusive Bildercodes (<img src).
Kann sein, dass ich dich falsch verstehe.
Falls du einen regulären Ausdruck für die Bilder doch brauchst, sag mir bescheid, ich hatte gestern eine ähnliche Situation ;)
 
danke für deine antwort comfreak. ich glaube es musste so heissen:
PHP:
<form onSubmit="getimages(); return true;">
sprich der letzte strichpunkt muss noch innerhalb des anführungszeichen stehen oder? wie auch immer, funktioniert hats leider nicht. das window location href wird nicht ausgefüht, sondern action wird ausgeführt.
ich hab mir nun überlegt, dass ich einfach folgendes mache:
PHP:
<div style="cursor:pointer;" onclick="getimages()">pdf generieren</div>
dann funktioniert alles. ist vielleicht nicht die sauberste lösung, aber sie erfüllt ihren zweck.

ja, das mit preg_match war schwachsinn. wie würdest du es denn machen? ich greife momentan so darauf zu:
PHP:
function getimages() {
var iscbild1 = document.getElementById('hochformatbild1').getElementsByTagName('img')[0].getAttribute('src');
var iscbild2 = document.getElementById('hochformatbild2').getElementsByTagName('img')[0].getAttribute('src');
usw. (das geht bis hochformatbild6 plus ein querformatbild)
window.location.href = "createpdf.php?bild1="+iscbild1;
wie gesagt, ich habe es bisher nur mit der ersten variable getestet.wenn ich nun die zweite auch noch mitanhängen will sieht das so aus oder?
PHP:
window.location.href = "createpdf.php?bild1="+iscbild1"&bild2="iscbild2";

gruesse und danke dir.

manu
 
Zuletzt bearbeitet von einem Moderator:
Deine Funktion getimages() stimmt nicht.
Diese Zeile
Javascript:
document.getElementById('hochformatbild1').getElementsByTagName('img')[0].getAttribute('src');
ist sinnlos. Du greifst zuerst auf ein bestimmtest Element (=hochformatbildx) zu und dann willst du alle Elemente mit dem Tagnamen "img" erhalten.
So stimmt es:
Javascript:
var iscbild1 = document.getElementById('hochformatbild1').src;
Du kannst noch eine Schleife einbauen:
Javascript:
var IscBild = new Array();
var hochformatbild_anzahl = 6;
for (i=1; i<=6; i++; i++)
{
  IscBild.push(document.getElementById('hochformatbild'+i).src);
}

Jetzt willst du doch diese Information inklusive dem Formular an das PHP-Skript senden?!
Ich würde noch ein zusätzliches Input-Feld mache, in das du mit JavaScript deine erhaltenen Werte reinschreibst:
HTML:
<form...>
  <input type="hidden" id="IscBilder" name="IscBilder" value="" />
</form>
Ich würde die Werte separiert speichern.
Allerdings dürfte das Trennzeichen nicht in den Dateinamen vorkommen, z.B. ein "}".
Javascript:
document.getElementById("IscBilder").value = IscBild.join("}");
 
wenn ich es so mache:
PHP:
var iscbild1 = document.getElementById('hochformatbild1').src;
greife ich auf ein div mit der id hochformatbild1 zu. dieses hat kein src. deshalb spreche mit folgendem code das erste bild (ist auch das einzige) in diesem div an:
PHP:
document.getElementById('hochformatbild1').getElementsByTagName('img')[0].getAttribute('src');
das funktioniert soweit auch. das problem war bzw ist die übergabe. aber ich checke gleich heute nachmittag deinen vorschlag und berichte dann, obs funktioniert.

vielen dank für deine hilfe

manu
 
Zurück