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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von boris (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


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

von boris (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.