2017-03-11 4 views
-1

So habe ich einige jQuery-basierte Javascript, die einen Ajax-Aufruf an eine PHP-Funktion macht.JSON stripping führende 0 aus numerischer Zeichenfolge

updatemarkers.xhr = $.post(ih.url("/AjaxSearch/map_markers/"), params).done(function(json) { 
    <stuff> 
} 

die PHP-Funktion kehrt Dieses Array:

Array 
(
    [0] => IL-MLSNI 
    [1] => 06339655 
    [2] => 41.93027100 
    [3] => -87.98229900 
    [4] => 0 
) 

Aber die JSON Array behandelt array [1] als "6.339.655", was falsch ist. Gibt es einen einfachen Weg, damit umzugehen? Notieren Sie Array [0], das angibt, aus welchem ​​MLS die Daten stammen, und der zweite Parameter ist immer ein String, egal ob numerisch oder nicht, daher ist die führende 0 in diesem Fall relevant.

Mein Backup-Plan ist, einige widerliche Zeichen der Zeichenfolge in PHP voranzustellen, die ich in Javascript entfernen werde, aber für 2% der Einträge in unserer DB, das scheint ein wenig peinlich.

+2

Wenn Sie eine Zeichenfolge möchten, verwenden Sie eine Zeichenfolge –

+0

Eine führende Null auf eine Zahl hat keine semantische Bedeutung. Mit oder ohne Anzahl führender Nullen ist es der gleiche Wert. – Pointy

+1

Dies ist eine PHP-Frage, keine Javascript-Frage. Ihr PHP-Code sendet eine Nummer in JSON. Bitte posten Sie mehr PHP-Code, wie der JSON von einem Array kodiert ist. Sie müssen möglicherweise die Zahl formatieren, um in PHP zu stringeln. –

Antwort

0

Ok, das Problem gefunden. Jemand hat den JSON mithilfe der Option JSON_NUMERIC_CHECK für json_encode "optimiert". Musste ein paar Ebenen in unseren Controller-Code graben. Meine Güte.

Verwandte Themen