Announcement

Collapse
No announcement yet.

Cordova Zugriff auf MySQL-Datenbank, Rückgabe Datensätze als Array

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Cordova Zugriff auf MySQL-Datenbank, Rückgabe Datensätze als Array

    Hallo zusammen

    Ich bin neu in JQuery und nach stunden(Tage)langem ausprobieren, schildere ich nun hier mein Problem.
    Ich will in meiner Cordova-App Daten aus einer MySQL Datenbank holen.
    Da Cordova PHP nicht unterstützt, rufe ich per JQuery ein PHP auf meine Server auf. Das PHP sollte mir dann alle gefundenen Datensätze zurückgeben.
    Der Javascript-Aufruf der PHP-Datei und dort die Datenabfrage auf die Datenbank funktioniert.
    Nur bei der Rückgabe der Datensätze(als Array da es mehrere Datensätze sind) klemmt es bei mir.
    Was mache ich falsch oder gibt es eine einfachere Art MySQL Daten zu holen?

    Hier mein PHP:
    PHP Code:
    <?php
        
    if (isset($_POST["function"])) 
        {
            
    $function $_POST['function'];
            switch(
    $function)
            {
                case 
    'barcode':
                    
    //Datenbankverbindung herstellen
                    
    mysql_connect("localhost""root""");
                    
    //SQL ausführen
                    
    $result mysql_query("select code, bezeichnung from molerb.v_barcode_bezeichnung");
                    
    //Prüfen ob Daten gefunden wurden
                    
    $anzahl mysql_num_rows($result);
                    if (
    $anzahl 1)
                    {
                        return(
    "Keine Datensätze gefunden");
                    }
                    else
                    {
                        
    //Daten gefunden - Array mit Datensätze zurückgeben
                            //echo "test";
                                         
    return(mysql_fetch_assoc($result));
                    }
                    break;
                default:
                    return(
    "unbekannter Funktionsparameter");
                    break;
            }
        } 
        else 
        {
          return(
    "kein function-Parameter, darum Exit");
        }
    ?>
    und hier mein 'pseudo' HTML:
    HTML Code:
    <html>
    	<head>
    		<!--Jquery einbinden-->
    		<script type="text/javascript" src="jquery-2.1.1.min.js"></script>
    		<!--Eigene Funktionen-->
    		<script type="text/javascript">
    			function get(){
    
    				$.post("php.php", { function: 'barcode' },
    					function( data ) {
    						var myArray = data;
    						alert(data);
    						}
    				);
    				
    				//alert(myArray);
    				
    				var arrayLength = myArray.length;	
    				for (var i = 0; i < arrayLength; i++) {
    					var code = (myArray[i]);
    					var bezeichnung = (myArray[i]);
    					//Array in LocalStorage füllen
    					alert($code);
    					alert($bezeichnung);
    					//window.localStorage.setItem($code, $bezeichnung);	
    				}
    			}	
    		</script>
    	</head>
    	<body>
    		<p>
    		<form name="form">
    			<input type="button" value="Query to Localstorage" onclick="get();">
    		</form>
    		<div id="age"></div>
    		</p>
    	</body>
    </html>
    Danke und Gruss
    R.
    Zuletzt editiert von rambodieschen; 05.08.2014, 14:09.

  • #2
    $myArray dürfte PHP-schreibweise sein und "klemmt es bei mir." ist kein Fehler
    Christian

    Comment


    • #3
      Danke für den Hinweis. Ich habe den Code korrigiert.
      Nun liefert alert(myArray); ein leeres Popup. :-(

      Comment


      • #4
        $code, $bezeichnung betrifft es auch. Gibt mal nur alert(data) aus
        Ggf. schau dir mit Firebug und dem dortigen Netzwerkmodul an, was dein Server zurückliefert
        Christian

        Comment


        • #5
          Hmm, ja sorry mein Gehirn ist schon halb weichgeklopft. ;-)
          Alert wird leer dargestellt.

          Comment


          • #6
            Dann schau nach, was der Server in den Response schreibt
            Christian

            Comment


            • #7
              200. Er zeigt mir im alert was mit ECHO geschrieben wird und nicht was ich in der Variable zurückgebe.

              Comment


              • #8
                Erstaunlich, da es doch in deinem Code kein ECHO gibt....
                Christian

                Comment


                • #9
                  Ich habe es natürlich ausführlich getestet mit vielen ECHO's, welche ich hier aber wieder rausgenommen habe. Habs ergänzt aber auskommentiert.
                  Vermutlich ist es nicht einfach möglich wie ich es mir vorgestellt habe. Mit Json, xml kenne ich mich leider nicht so gut aus. Macht es halt 'schwieriger/umfangreicher'.

                  Comment


                  • #10
                    Die Anfrage besteht aus einem Request und wird mit einem Response beantwortet. Das ist genau so wie im einer per PHP generierten HTML-Seite. Wenn du da mit Echo etwas ausgibst, sieht du das auf der Seite -> im Response.
                    Also wirst du hier auch ungewollt dann deine Ausgaben sehen. Es sind diese also zu entfernen und nur das in den Response zu schreiben, was man wirklich will
                    Christian

                    Comment


                    • #11
                      Tip die URL die Du aufrust erstmal in Deine Browser URL Leiste ein und schau Dir an was als Text vom Server zurückkommt. Entspricht das dem was Du haben willst, dann hast Du ein Problem in Deinem Cordova Code. Kommt im Browser schon nichts dann hast Du einen Fehler im Servercode.

                      Comment

                      Working...
                      X