# QR-Codes mit Javascript erstellt und Daten mit PHP aufbereiten



## Tony-S (12. Oktober 2011)

Hallo Forum,

ich habe eine Datenbank mit verschiedenen PCs, deren Eigenschaften wie Name, Inventarnummer, Seriennummer und Mac-Adresse dort gespeichert sind und möchte nun aus diesen Informationen QR Codes erstellen. Bis jetzt habe ich zwei Javascript-Dateien die man hier findet auf github findet: http://goo.gl/yyfXq mit denen man die QR-Codes erstellen kann
und ein PHP-Dokument welches mir die Daten aus einer MySql Datenbank zieht. Jetzt ist meine Frage eigentlich "nur" wie ich in meinem folgenden Quelltext Änderungen vorzunehmen habe um den Zellen eine ID zu geben und die Daten der Abfrage an das Javascript weitergebe ...

Ich muss dazu sagen dass das alles noch ein wenig neu für mich ist, ich aber schon mit anderen Sprachen programmiert hab und durchaus (größtenteils) verstehe, was da abläuft.

Nun also mein Quellcode:



```
qr php mysql javascript - Pastebin.com[/url]
und hier das JS: [url]https://github.com/amanuel/JS-HTML5-QRCode-Generator/blob/master/html5-qrcode.js[/url]

Ich hoffe mir kann jemand helfen auch wenn das Problem etwas speziell ist

- btw, das was ich da bei: "function updateQRCode(text)" gemacht habe, ist eher ein Versuch einen String für den QR-Code zusammen zu bauen aber so richtig blick ich nicht durch,
wie ich aus den mit php abgerufenen daten so aufzubereiten das ich sie im javascript nutzen kann und alle PCs inkl. dessen QR Code in einer Tabelle darzustellen
```


----------



## Crysis nerd (21. Oktober 2011)

Also ich muss sagen, dass ich deine Problemstellung nicht 100%ig verstehe. Aber da keiner geantwortet hat bis jetzt, versuch ich mal mein Glück:

Du hast ein Javascript-script, was dir aus einem string "text" einen QR code erzeugt. Die Daten, die in diesem Code gespeichert werden müssen kommen aus einem PHPscript.
Zu deiner ersten Frage, wie du eine ID zu den Zellen hinzufügst: Meinst du eine hochzählende Zahl, die pro Datensatz einmalig ist oder eine ID für ein html element setzen?
Ersteres ist recht einfach zu schaffen, indem man in der Schleife einfach eine Variabel von 0 hochzählt und auch immer mit ausgibt.

Dann aber das kniffligere: Die Daten an Javascript zu kriegen. Erstmal übergibt man an die JS nur einen text, und nicht mehrere Variabeln. D.h. man muss alle Variabeln zu einem einzigen string vereinen. Ich empfehle das Format, was auch im Web verwendet wird: IPN=kuchenpc&IM=0033421337
wobei das jetzt abkürzungen sein sollen für zb. inventory_pc_name.
Und ich bin auch kein Javascript experte, und es geht wahrscheinlich viel einfacher, aber ich würds so machen:
in der php While schleife, in der alle datensätze gelesen werden gibst du jeden durchgang einfach immer aus:
<div id='datensatz$i'>IPN=kuchenpc&IM=0033421337</div>
Dabei ist $i eine hochzählende variable
und in Javascript machst du ebenfalls eine while schleife, die alle elemente durchgeht. Pseudocode:

```
var i=0;
while(true)
{
  $var elem = document.GetElementById('datensatz'+i);
  if(elem == NULL)  //Element existiert nicht
    break;
  showQRCode(elem.innerHTML)
  i++;
}
```
Hoffe ich habs gut genug beschriebnund dein problem verstanden. Sonst meld dich heir nochmal

mfg
Lukas


----------



## Tony-S (21. Oktober 2011)

Danke  *Crysis nerd* - so oder so ähnlich hätte ich wohl weiter gemacht (deine Idee scheint ohne sie probiert zu haben, schlüssig und richtig). Ich habe mich die Tage aber nochmal hingesetzt und mir eine andere Lösung überlegt. Die Idee war ja ursprünglich eine Lösung zu bauen die ohne Plug-In oder Fremddienst auskommt und einfach im Browser läuft. So hat sich die Palette an Lösungen auf eine jquery-Bilbiothek und eine mit HTML5 und JavaScript beschränkt, die erste fiel weg da sie nich sehr gut dokumentiert war und für mich die HTML5-Lösung einfach bequemer aussah. Dann brauchte ich aber Daten aus unserer PC-Datenbank, so kam PHP hinzu - ich hab also unnötigerweise versucht mit JavaScript auf die Tabelleninhalte zuzugreifen.

Also hab ich nach einer PHP-Lösung gesucht und eine gefunden, die sehr einfach zu nutzen ist und habe mir somit ein Lösung zusammengebaut die sehr gut funktioniert, diese QRs dienen ja als Etikette für PCs bei uns.

Wie ich das gelöst habe schreibe ich hier noch ich überleg nur noch wo ich das hoste, auf Pastebin wäre z. B. eine Idee - mal sehen.

MfG Tony


----------



## Crysis nerd (22. Oktober 2011)

Oke, das ist natürlich viel einfacher. Hab mich schon gewundert, warum die QR codes per JS erstellt werden, war dann aber auch zu doof um dir was besseres vorzuschlagen^^
Jedenfalls gut, dass du dein Problem gelößt hast.

mfg
Lukas


----------



## Tony-S (23. Oktober 2011)

Also die Lösung ist wie gesagt mit PHP entstanden und nutzt eine Datei die man hier bekommt:
QRcode Perl CGI & PHP scripts

Zum Anzeigen der Etiketten bzw aufbereiten der Daten:


```
vaQRyo_main - Pastebin.com[/url]

Die PHP-Datei die die QR-Codes erstellt (qr_img.php):
[url=http://pastebin.com/HvaUF8a2][PHP] vaQRyo_php - Pastebin.com[/url]

Die hier wichtige Änderung ist in Zeile 86 zu finden, die übergebenen ":||:" werden dann dort in "\r\n", also einem Zeilenvorschub umgewandelt und der QR-Code erstellt.

Wer also mal QRs offline erstellen will sollte diese Datei nutzen :D

PS: sollten die Links irgendwann mal tot sein, schreibt mir ne PN - das nervigste in Foren sind nicht funktionierende Links
```


----------



## Frezy (13. Februar 2012)

Hey,
Sry das ich den Beitrag nochmal rauskrame... aber habe mal ein Projekt gehabt wo ich mit QR Codes Daten auf Tickets geschrieben hab.
Meiner Meinung die beste Möglichkeit ist das ganze mit der google.de Chart API zu meistern.

Beispiel: https://chart.googleapis.com/chart?cht=qr&chl=Hello+world&chs=200x200

Hier die Doc: Google Chart Tools: Infographics - Infographics - Google Code

Hoffe es hilft jemandem. Dem TE wohl nicht mehr.^^

Mit freundlichen Grüßen,
Frezy


----------

