1

jQuery ajax と $(this).serialize を使用してフォームを php とデータベースに送信してきましたが、完全に機能しました。現在、シリアル化されたフォームを使用できず、代わりに別の入力フィールドから文字列を生成する状況があり、その過程でいくつかの URL エンティティが失われるように見えるという問題があります。

たとえば、"&phone=+358123456789" は "&phone= 358123456789" になり、プラス文字が失われ、データベースへの空白が残ります。「&phone=%2B358123456789」でも問題なく動作します。

失われる可能性のある「+」以外の文字がたくさんある可能性があるため、文字列を変換するphpのhtmlentitiesに似た関数があるかどうかを尋ねていますか? javascript の escape() & unescape() を成功せずに試し、jquery の .text() & .html() をいじりましたが、うまくいきませんでした。

4

2 に答える 2

5

データ文字列でencodeURIComponentを使用してください。

于 2010-08-05T11:59:32.943 に答える
2

データをオブジェクトとして$.ajax()(またはAJAXの省略形の)メソッドに渡すことはできます。次に例を示します。

$.ajax({
  url: 'myPage.php',
  type: 'POST',
  data: { phone: $("#phone").val(),
          other: $("#other").val() }
});

{ param: value, param2: value }前に置いたはずの場所にオブジェクトを渡すだけです.serialize()。 このメソッドは、それが使用するものであるため、内部的に呼び出します :)encodeURIComponent()$.param()

于 2010-08-05T12:03:18.227 に答える