Forum: PC-Programmierung JavaScript: Parameter mit Funktion bereitstellen


von boris (Gast)


Lesenswert?

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!

von Philipp K. (philipp_k59)


Lesenswert?

Nen explode oder split auf den php string müsste einen Array 
zurückgeben..

JS ist schon nen bisschen her.

: Bearbeitet durch User
von ni (Gast)


Lesenswert?

var test = myApp.picker({
 value: $.get("https://localhost/data.php").split(":";),
});

oder lieber vorher

var x = $.get("https://localhost/data.php").split(":";);

und dann prüfen, ob nichts schiefgegangen ist, dann

var test = myApp.picker({
 value: x,
});

von boris (Gast)


Lesenswert?

Danke, geht aber leider nicht.

Wenn ich den Wert von Hand eintrage [3,43] dann funktioniert es.

von Daniel A. (daniel-a)


Lesenswert?

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.

von boris (Gast)


Lesenswert?

Funktioniert leider auch nicht...

von Daniel A. (daniel-a)


Lesenswert?

Dann öffne mal die Konsole, und schaue nach ob es eine Fehlermeldung 
gibt. Wird nach dem $.get die Variable test noch irgendwo verwendet?

von Boris (Gast)


Lesenswert?

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.

von Daniel A. (daniel-a)


Lesenswert?

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.

von D. I. (Gast)


Lesenswert?

Du könntest es auch gleich richtig(tm) machen und dir die Daten als JSON 
liefern lassen ;P

von Johnny B. (johnnyb)


Lesenswert?

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/

: Bearbeitet durch User
von boris (Gast)


Lesenswert?

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.

von D. I. (Gast)


Lesenswert?

boris schrieb:
> Danke für eure Hilfe. JSON werde ich mir mal anschauen, wobei der
> Traffic ja wahrscheinlich ohne JSON kleiner ist, oder?

Vernachlässigbar

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.