1

私の問題はこれです。ブラウザからGPS位置を取得するJavaScriptコードがあります。次に、これらの座標をjavascriptからSQLデータベースに書き込むことができず、phpに直接送信できないため、コントローラーの「サイト」に移動し、メソッド「writeToDatabase」を使用して、URLに4つのセグメントを追加します。実際、私がjavascriptから取得した座標。

だからjavascriptで私は持っています:

window.location = getBaseURL() + "site/writeToDatabase/" + splittedLatitude[0] + "/" + splittedLatitude[1]
        + "/" + splittedLongitude[0] + "/" + splittedLongitude[1] + "/";

これで、ブラウザは(偽の座標を使用した単なる例)www.mysite.com/index.php/site/writeToDatabase/47/707223/16/054322に移動します。

これで、サイトコントローラーのwriteToDatabaseメソッドがそれらのセグメントを読み取ります(私はcodeigniterを使用しているため、URLのセグメントを読み取るのは非常に簡単です)。セグメントを読んだ後、緯度の最初の部分と緯度の2番目の部分を連結し、ドット「。」を付けます。その間に(この例では47.707223と16.54322を取得します)、経度でも同じことを行います。これらのデータをデータベースに書き込むと、データベースに奇妙な数値が表示されます。セグメントの1つがゼロで始まっている場合も同様です。 (上記の例のように)ゼロが削除されるので、054322から54322を取得し、上記の例のように16.54322になります:)

現在、この奇妙な数値の問題は、データベース全体の座標に書き込もうとした場合にのみ発生します。経度の最初の部分、または経度の2番目の部分(緯度についても同じ)を書き込もうとすると、すべてがうまくいき、正しい値が書き込まれます。

他の誰かがこの問題の解決策を持っていますか?私はすべてアイデアがありません

4

2 に答える 2

0

必要に応じて、整数に先行ゼロが含まれることはありません-INTではなくCHARフィールドを作成します(手動で行う場合に備えて、型キャストしないでください)。

于 2012-07-20T09:02:33.273 に答える
0

次のようなパラメータをそのまま送信してみませんか。

http://www.example.com/foo/bar/?lat=47.11&lng=5.012

それはその問題を解決します。

ただし、このような単純な文字列連結を使用して、(これらは整数ではなく文字列であるため) 自分のやり方で行うことができます。

$lat = $_GET['first'] . '.' . $_GET['second];
于 2012-07-14T15:14:56.793 に答える