ホームページ > バックエンド開発 > PHPチュートリアル > jQuery でシリアル化されたフォームが PHP スクリプトにデータを送信しないのはなぜですか?

jQuery でシリアル化されたフォームが PHP スクリプトにデータを送信しないのはなぜですか?

Barbara Streisand
リリース: 2024-11-02 22:25:03
オリジナル
502 人が閲覧しました

Why is my jQuery serialized form not sending data to my PHP script?

jQuery と PHP を使用したフォームのシリアル化と送信

問題:

シリアル化されたフォームjQuery を使用すると、PHP スクリプトへのデータの送信に失敗します。サーバーはデータを受信しません。

HTML フォーム:

`




`

JavaScript:

<code class="javascript">$("#contactForm").submit(function() {
  $.post("getcontact.php", $("#contactForm").serialize())
    .done(function(data) {
      // handle response
    });

  return false;
});</code>
ログイン後にコピー

サーバーサイド PHP (getcontact.php):

<code class="php">$nume = $_REQUEST["nume"]; // empty
$email = $_REQUEST["email"]; // empty
$telefon = $_REQUEST["telefon"]; // empty
$comentarii = $_REQUEST["comentarii"]; // empty</code>
ログイン後にコピー

解決策:

jQuery.post() コードを次のように置き換えます。

<code class="javascript">var datastring = $("#contactForm").serialize();
$.ajax({
  type: "POST", // method
  url: "your url.php", // action
  data: datastring, // form data
  dataType: "json", // expected response type
  success: function(data) {
    // handle response
  },
  error: function() {
    // handle error
  }
});</code>
ログイン後にコピー

追加メモ:

  • dataType を「jsonp」に設定します。 " クロスドメイン リクエストの場合。
  • リクエスト前アクションとリクエスト後のアクションには beforeSend と complete コールバックを使用します。
  • 同期リクエストには async: false の使用を検討してください。
  • 無効にするキャッシュによるキャッシュ: false。
  • 詳細については、公式ドキュメントを参照してください。

Update

  • var_dump($_POST ) は空の配列を返すはずです。
  • 問題は、PHP.ini ファイルの構成が間違っている、ファイルのアップロードが無効になっているなど、サーバーに関連している可能性があります。

以上がjQuery でシリアル化されたフォームが PHP スクリプトにデータを送信しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート