• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

split mit Gradzeichen ?!

mathom

New member
Hallo miteinander

Ich danke euch schon im Voraus für jede Art von Tipp und Hilfestellung.

Natürlich habe ich schon viel gegooglet, aber leider nichts passendes gefunden :confused:

Hier meine (eigentlich simple) Frage:

Wie kann ich einen String mit einem Gradzeichen als Trennzeichen teilen? Zeichen wie +-/:....... machen keine Probleme, aber das Gradzeichen will einfach nicht!
:icon8:

Hier die Problemzeilen:

Die Daten kommen mit jQuery aus einem Eingabefeld und werden in latitude gesteckt.

latitudeArr = latitude.split("°");

Liebe Grüsse
mathom
 
Bist du sicher, dass die JS-Datei und Seite die gleiche Kodierung haben? Klingt nach einem UTF-8 vs. Latin-1 Problem.
 
Daran habe ich nicht gedacht. Die Seite ist auf utf-8 eingestellt. Wie das bei JQuery ist, weiss ich nicht. Es läuft das komprimierte Paket auf dem Server. Ich google.......
Danke für den Tipp!
 
Der HTML Header wird evtl. durch einen HTTP Header überschrieben und mit jquery hat das Problem gar nichts zu tun. Die split() Funktion ist builtIn
 
Danke für die Tipps und Hinweise!

Nun habe ich den Code umgeschrieben, um das Problem zu isolieren. Dies habe ich herausgefunden:

Wenn ich den String "manuell" erzeuge, klappts wie gewünscht: latitude = "N 47° 03.952"; Das Gradzeichen wird erkannt und der String geteilt.

Hole ich aber den String mit jQuery aus einem Eingabefeld, klappt es nicht: latitude = $('#latitude').val(); Das Gradzeichen wird nicht gefunden, obwohl die beiden Scripte auf derselben Seite (Header) laufen.

Teile des Formulars:


<form enctype="multipart/form-data" method="post" action="wegpunkte.php" >

.....

<input class="input_text" type="text" id="latitude" name="latitude" value="<?php echo "$latitude"; ?>" />


....

Hat vielleicht jemand eine Idee?
 
google...google...Auch wenn ich den Form-Tag so anpasse, klappts nicht:

<form accept-charset="utf-8" method="post" action="wegpunkte.php" >
 
<input class="input_text" type="text" id="latitude" name="latitude" value="<?php echo "$latitude"; ?>" />
die Anführungszeichen kollidieren, das erste " hinter value= wird durch das von Dir verwendete " vor $latitude im echo wieder geschlossen
so sollte es klappen
Code:
value="<?php echo $latitude; ?>"
wenn dann noch Probleme bestehen, probier mal
Code:
value="<?php echo utf8_decode($latitude); ?>"
 
Danke für die Hilfestellung!

Dieser Teil wird schon korrekt angezeigt: <input class="input_text" type="text" id="latitude" name="latitude" value="<?php echo "$latitude"; ?>" />
Das ist ja HTML-Code, in welchem value von php geliefert wird.

Verwende ich diesen Code: .... value="<?php echo utf8_decode($latitude); ?>" />

wird der Inhalt des Eingabefeldes so dargestellt N47�05.267 (Gradzeichen als Kasten)
 
also wenn dann doch eher

PHP:
value="<?php echo utf8_encode($latitude); ?>"

oder?

falls das nicht gehen sollte, erstetz doch einfach php-seitig das Grad-Zeichen ;)
oder gib den Leuten hier einen Testlink...
 
prüf nochmal den HTML head
<meta http-equiv="content-type" content="text/html; charset=utf-8">

oder nutz mal das charset-attribut in den script-tags
<script type="text/javascript" src="[path]/myscript.js" charset="utf-8">

der Editor mit dem Du arbeitest speichert die Dateien auch als utf-8 ?
 
Ich bevorzuge in HTML ja htmlentities...

PS: Woher kommt denn die Variable $latitude?
PPS: Ein Testlink wäre trotzdem einfacher gewesen...
 
Danke für die vielen Ideen, woran es noch liegen könnte!!

Mein Editor speichert in ANSI. Seltsamerweise kam ich bis jetzt ohne Probleme damit zurecht. (Wenn ich aber jetzt auf utf-8 umstelle funktioniert die Seite nicht mehr.)

Damit funktioniert das Script einigermassen:

var latitude2 = decodeURIComponent( escape( $('#latitude').val() ) );
if (latitude2.indexOf("°") == -1) {
alert("<?php echo "$_hinweis_Gradzeichen_fehlt" ?>" + ": " + latitude2);
}

PS: Die Variable $latitude wird mit PHP aus der Datenbank mit dem vorhandenen Wert gefüllt. Das obere Script überprüft nun vor dem Speichern in die DB, ob ein Gradzeichen vorhanden ist.

PS2: Da die Seite innerhalb eines Login-Bereichs steht, konnte ich keinen Testlink geben.

Danke für die Anfängerhilfe!
 
Scheint OK zu sein. Ist aktuell so definiert:

<!doctype html>
<html lang=de>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 
Zurück
Oben