jQuery と PHP を使用したフォームのシリアル化と送信
問題: jQuery を使用してフォーム データをシリアル化しても、データはサーバーに到達していません。
HTML フォーム:
<code class="html"><form id="contactForm" name="contactForm" method="post"> <input type="text" name="nume" size="40" placeholder="Nume"> <input type="text" name="telefon" size="40" placeholder="Telefon"> <input type="text" name="email" size="40" placeholder="Email"> <textarea name="comentarii" cols="36" rows="5" placeholder="Message"></textarea> <input id="submitBtn" type="submit" name="submit" value="Trimite"> </form></code>
JavaScript:
<code class="javascript">$("#contactForm").submit(function(e) { e.preventDefault(); // Prevent browser submission $.post("getcontact.php", $("#contactForm").serialize()) .done(function(data) { // Process server response }); });</code>
サーバー-サイド PHP (getcontact.php):
<code class="php">$nume = $_POST["nume"]; $email = $_POST["email"]; $telefon = $_POST["telefon"]; $comentarii = $_POST["comentarii"];</code>
問題の解決策:
この問題は、$.post( ) (jQuery 3.0 では非推奨になりました)。代わりに、次の設定で $.ajax() を使用します:
<code class="javascript">$.ajax({ type: "POST", url: "getcontact.php", data: $("#contactForm").serialize(), dataType: "json", success: function(data) { // Process server response }, error: function() { // Handle errors } });</code>
この更新されたコードでは:
以上がjQuery でシリアル化されたフォーム データが PHP サーバーに到達しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。