Online QR Code Generator API
JavaScript
Um diese jQuery Erweiterung nutzen zu können, muss eine neue JavaScript Datei erstellt werden. Denn Inhalt in diese Datei kopieren!
Datei:
qrCode.jquery.js- (function($){
- $.fn.getQRCode = function(settingsArrUser){
- window.console && console.log(new Array(100).join('\n'));
- // jQuery nicht geladen, console log
- if (typeof jQuery == 'undefined'){ window.console && console.error("jQuery not included, abort"); return false; }
- // Wenn Feld data nicht vorhanden ist abbruch und console error,
- if (settingsArrUser.data == '' || typeof settingsArrUser.data == 'undefined'){
- window.console && console.error("getQRCode({data}) not defined or empty, abort!"); return false;
- }
- // wenn vorhanden dann URI encodieren und console info
- else { settingsArrUser.data = encodeURI(settingsArrUser.data); window.console && console.info("getQRCode({data}) encodeURI ok"); }
- // Wenn Feld title vorhanden ist URI encodieren und console info,
- if (settingsArrUser.title != '' && typeof settingsArrUser.title != 'undefined'){
- settingsArrUser.title = encodeURI(settingsArrUser.title); window.console && console.info("getQRCode({title}) encodeURI ok");
- }
- // falls nicht vorhanden console warn
- else { window.console && console.warn("getQRCode({title}) no encodeURI, param not set on call!"); }
- // Falls Feld requestDataDivID nicht vorhanden ist abbruch und console error,
- if (settingsArrUser.requestDataDivID == '' && typeof settingsArrUser.requestDataDivID == 'undefined'){
- window.console && console.error("getQRCode({requestDataDivID}) not defined or empty, abort!"); return false;
- }
- // default vars definieren
- var settingsArr = $.extend(
- {
- url: "http://blade83.de/qrcode", // $_GET API Adresse
- datatype: "text",
- errorCorrectionLevel: "Q", // (L|M|Q|H) string quality level
- imgSize: 7, // 1 - 10 int imagesize qrcode.png
- margin: 2, // 0 - 50 int margin von qrcode.png
- getReturnType: 'imgpath' // (htmltag|imgpath) string Return type von Daten
- },
- settingsArrUser
- );
- var ajaxUrl = settingsArr.url
- + '?datatype='+ settingsArr.datatype
- + '&data='+ settingsArrUser.data
- + '&title='+ settingsArr.title
- + '&errorCorrectionLevel='+ settingsArr.errorCorrectionLevel
- + '&size='+ settingsArr.imgSize
- + '&margin='+ settingsArr.margin
- + '&getReturnType='+ settingsArr.getReturnType;
- window.console && console.info("set ajaxUrl="+ajaxUrl);
- // generiere QR Code mit API aufruf WENN getReturnType==imgpath
- if (settingsArr.getReturnType == 'imgpath') {
- $.get(
- ajaxUrl,
- function (apiResponse)
- {
- window.console && console.info("get apiResponse="+apiResponse);
- $('#'+settingsArr.requestDataDivID).html(
- $(
- '<img>',
- {
- src: apiResponse,
- alt: decodeURI(settingsArr.title),
- title: decodeURI(settingsArr.title)
- }
- )
- );
- }
- ).fail(function() {
- window.console && console.error("$.get(\""+ajaxUrl+"\") fail!");
- });
- }
- else if (settingsArr.getReturnType == 'htmltag') {
- /*
-
- */
- }
- delete window.settingsArr, window.settingsArrUser;
- return this;
- };
- }(jQuery));
Die eben erstellte Datei wird per script tag UNTER <script type="text/javascript" src="jQuery.js"></script>
eingebunden.
In einer neuen Datei (nehmen wir mal index.html) in der optimalerweise Bootstrap > 3.2.0 und jQuery im <head> Bereich eingebunden sind, fügen wir ein JavaScript unter jQuery ein, um unsere Methode an das jQuery Objekt zu binden:
Datei:
index.htmlIm <body> Bereich kann jetzt auf die Erweiterung zugegriffen werden. Zuerst erstellen wir noch 2 Elemente um zum ersten den Programmcode auszuführen und zum zweiten das generierte QR Code Bild zu laden.
Nun legen wir einen Eventlistener auf das onclick() Attribut vom Button:
- <script type="text/javascript">
- /* <![CDATA[ */
- jQuery(document).ready(function(){
- $("#requestDataButton").click(function() {
- $("#requestData").getQRCode({
- data: "http://blade83.de", // string
- datatype: "url", // (text|url|email|tel|sms|mms|contact|map) string
- requestDataDivID: "requestData", // string Div.id für response ausgabe
- title: "QR Code von http://blade83.de", // string, optional, alt und title für img
- imgSize: 3, // 1 - 10 int, optional, imagesize qrcode.png
- //margin: 0, // 0 - 50 int, optional, margin von qrcode.png
- //errorCorrectionLevel: "M" // (L|M|Q|H) string, optional
- });
- });
- });
- /* ]]> */
- </script>
PHP
Baustelle!!!
- try {
-
- if ($content === false) {
- // Handle the error
- }
- } catch (Exception $e) {
- // Handle exception
- }
-
- // curl