JavaScript: Parameter mit Funktion bereitstellen

Gast #4800298
Ich habe ein simples Problem mit JavaScript.

Im Script möchte ich die Werte 7 und 11 von einem php auslesen und 
eintragen.
1
var test = myApp.picker(
2
                                 {
3
 
4
                                 value: [8,11],
5
                          
6
                                 });


1
$.get("https://localhost/data.php");
Das ergibt das Resultat 8:11 als String.
1
actualTimeWeekendArray = $.get("https://localhost/data.php").split(":");
Das sollte ein Array mit den Werten 8 und 11 geben.

Wie kann ich jetzt diese Daten in den obigen Code einfügen?
Danke für die Hilfe!
#4800491
boris schrieb:
> $.get("https://localhost/data.php";);
> Das ergibt das Resultat 8:11 als String.

RTFM = read the fucking manual. Deine Annahme, das ein String 
zurückgegeben wird, ist falsch. Auf der ersten Zeile des Manuals:
https://api.jquery.com/jquery.get/
> jQuery.get( url [, data ] [, success ] [, dataType ] ) Returns: jqXHR

Gibt also ein jqXHR Objekt zurück. Falls du den code sauber aufgebaut 
hast, und asynchron arbeiten kannst, kannst du eine callbackfunktion 
nutzen:
1
$.get("https://localhost/data.php", function( data ){
2
  data = data.split(":");
3
  var test = myApp.picker({
4
    value: data
5
  });
6
});

Andernfalls müsste man synchron arbeiten, und das würde die Seite 
einfrieren, bis data.php geladen ist.

Und öffne auch mal die Konsole, da müsste irgendwas in die richtung 
"undefined isn't a function" oder so stehen.

PS: Ich nutze jQuery selbst nicht und habe den code nicht getestet.
Gast #4800633
Keine Fehler. Der Wert stimmt aber nicht.

Ich möchte ja innerhalb des Scriptes [5,23] einfügen. Was wiederum ein 
Array mit Integer sein sollte.

5:23 wird ja in ein solches Array umgewandelt. Ich verstehe nicht, warum 
das nicht geht.
#4800668
Man könnte versuchen herauszufinden, woran es liegt, indem man einige 
Debug ausgaben einbaut:
1
console.log("test1");
2
$.get("https://localhost/data.php", function( data ){
3
  data = data.split(":");
4
  console.log(data,myApp);
5
  var test = myApp.picker({
6
    value: data
7
  });
8
  console.log(test);
9
});
10
console.log("test2");
Die Ausgaben müssten dan in der Konsole zu finden sein.
#4801122
D. I. schrieb:
> Du könntest es auch gleich richtig(tm) machen und dir die Daten als JSON
> liefern lassen ;P

Genau so macht man das heutzutage.
Dann bekommt man in JavaScript schon ein schönes Objekt mit allem drin.

In PHP nimmt man das hier:
http://php.net/manual/de/function.json-encode.php

Und in JavaScript dann einfach so:
1
var obj = JSON.parse(text);

Du scheinst jQuery zu verwenden, dann gehts mit der Funktion "getJSON()" 
sehr einfach, die Daten vom Webserver zu laden:
http://api.jquery.com/jquery.getjson/
Gast #4801315
Danke für eure Hilfe. JSON werde ich mir mal anschauen, wobei der 
Traffic ja wahrscheinlich ohne JSON kleiner ist, oder?

Es funktioniert nun, das Problem war noch an anderer Stelle.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.