Forum: PC-Programmierung jQuery übergeben Variable funktioniert nicht wie erwartet


von boris (Gast)


Lesenswert?

Funktioniert nicht
1
$.get(serverAddress + 'test.php', function( my_var ) { $( '#testid' ).prop({ value: my_var });}, 'text');


Funktioniert
1
$.get(serverAddress + 'test.php', function( my_var ) { $( '#testid' ).prop({ value: 60 });}, 'text');

Ich möchte bei einem "input range" den Wert festlegen (wird für Slider 
verwendet).

Leider funktioniert das nicht. Mit input checkbox ("checked") 
funktioniert es, aber eben nicht mit Zahlenwerten.

Im Seitenquelltext des php-Aufrufes steht übrigens 0.


Ich vermute ich mache etwas mit den Variablen falsch. Bin dankbar für 
jede Hilfe.

von D. I. (Gast)


Lesenswert?

Welchen Wert hat my_var beim Aufruf?

Wenn du jQuery verwendest, solltest du den value mit der .val() Funktion 
setzen und nicht mit .prop()

von Jan H. (j_hansen)


Lesenswert?

Du erzeugst hier eine anonyme Callback-Funktion mit dem Input-Parameter 
"my_var". jQuery weiß aber jetzt wohl nicht, mit welchem Wert es die 
Funktion aufrufen soll. Wahrscheinlich gibt es außen noch eine 
gleichnamige Variable deren Wert du übergeben möchtest?

Versuch mal, die Funktion drüber zu deklarieren: function 
callback(my_var_1) {...}

Und dann im $.get statt der anonymen Funktion "callback(my_var)". 
Eventuell funktioniert es dann so wie du es erwartest.

Noch zwei Tipps: ordentliche Variablennamen sind immer gut, und wenn man 
im Forum fragt nicht nur eine Zeile, sondern ein lauffähiges 
Minibeispiel posten.

von boris (Gast)


Lesenswert?

.prop ist auf jeden Fall das Richtige um den Wert zu ändern. Das 
funktioniert ja auch, wenn ich den Wert manuell eingebe als Zahl.


.val ist meines Wissens nur um Werte zu erhalten.



my_var gibt den Wert 0 aus (alert(my_var);). Also der Wert wird 
eingelesen und weitergegeben. Was ich nicht verstehe ist, weshalb es 
hier nicht geht. Mit "checked" hat es funktioniert. Also vermute ich das 
Format stimmt nicht. Wie wandle ich my_var denn in jQuery in eine Zahl 
um?


Das mit den lauffähigen Beispielen ist immer so eine Sache. Am liebsten 
habe ich ein simples Beispiel das nicht funktioniert. :)

von D. I. (Gast)


Lesenswert?

boris schrieb:
> .val ist meines Wissens nur um Werte zu erhalten.

Dann würde ich mal die jQuery API konsultieren um dein Wissen auf den 
richtigen Stand zu bringen.

von D. I. (Gast)


Lesenswert?

Um deinem Fehler auf die Spur zu kommen:

Konsultiere auch die jQuery API bzgl der $.get Funktion und schau was 
der erste Parameter (in dem Fall bei dir my_var) bei der success 
funktion für eine Bedeutung hat

von boris (Gast)


Lesenswert?

Tut mir leid, aber ich versteh's nicht. Mit checked funktioniert es ja 
auch, also kann es ja nur am Typ liegen, oder?

von D. I. (Gast)


Lesenswert?

Da du nicht mehr Code zur Verfügung stellst, kann man auch nicht weiter 
helfen.

von boris (Gast)


Lesenswert?

Naja der Fehler muss ja in dieser Zeile liegen. Wenn ich die Zahl 
reinschreibe funktioniert alles.

Da ich mich mit jQuery noch nicht so auskenne, hoffe ich, dass jemand 
einen Tipp geben kann.

von Jan H. (j_hansen)


Lesenswert?

boris schrieb:
> Naja der Fehler muss ja in dieser Zeile liegen. Wenn ich die Zahl
> reinschreibe funktioniert alles.

Ja, in deinem zweiten Beispiel steht "60" drinnen, daher funktioniert 
es. In deinem ersten Beispiel steht keine einzige Zahl. Nachdem jQuery 
nicht gedankenlesen kann, möchtest du die Zahl wohl vom "geheimen" 
Coding aus übergeben. Warum das nicht klappt, dazu gibt es hier ja schon 
Antworten.

> Da ich mich mit jQuery noch nicht so auskenne, hoffe ich, dass jemand
> einen Tipp geben kann.

Was ist denn an den Beiträgen von D.I. mir nicht verständlich?

von boris (Gast)


Lesenswert?

Der Code war richtig.

Das Problem war, dass das PHP zu Beginn zwar den richtigen Wert 
geliefert hat, als ich den Code testen wollte aber nicht mehr.

Danke für eure Hilfe!

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.