2012-06-02 30 views
8

にjQueryを使ってPOSTデータを送信します。 $.post()$.get()、または$.ajax()のような関数を使用してフォームをajax経由でのみ送信すると、これは簡単になります。しかし私がここでやりたいことは、ajax経由ではなくフォームを提出することです。は、フォーム送信

追加データはJavaScriptにあります。私はフォームに提出するようにデータに渡す新しい隠しフィールドをDOMに挿入することを考えていますが、それを行う方法は他にありますか?

もっとコードや説明が必要な場合は、ご意見ください。

+0

なぜこれがdownvotedでしたか? –

答えて

11

送信ボタンを使用するのではなく、通常のボタンを使用して、Javascriptを使用して送信を制御します。あなたのjavascriptでは、フォームをシリアル化し、必要なものと一緒にデータとして渡す必要があります。

<script> 

    $(document).ready(function() { 

     var extra_data = "This is more stuff to send"; 

     $('#submit').click(function() { 
      $.ajax({ 
      type: "POST", 
      url: "form.php", 
      data: {'form': $("#my_form").serialize(), 'other': extra_data}, 
      success: function(msg) { 
       alert("Form Submitted: " + msg); 
      } 
      }); 

     }); 

    }); 

</script> 

<form id="my_form" method="post"> 
    <input type="text" name="name" /> 
    <input type="button" id="submit" /> 
</form> 
+0

それは私が質問の本文で言おうとしていることです。私はちょうどajaxを使用してフォームを送信しなければならないと思います。 –

+0

2つのオプションがあります。1)フォームの非表示フィールド。 2)AJAX。あなたが選んだのですが、個人的には、AJAXメソッドがより強固で、送信前にフォームの検証などの機能を追加できると思います。 –

1
<head> 
    <script src="jquery/jquery-1.11.1.min.js"></script> 
    <script> 
    $(function() { 
     $('#form_id').on('click','#submit', function(e){ 
      e.preventDefault(); 
      $.ajax({ 
       type: "POST", 
       url: "get_Ajax.php", 
       data: $('#form_id').serialize(), 
       success: function(data) { 
        alert(data); 
       } 
      }); 
      return false; 
     }); 
    }); 
    </script> 
</head> 
<form method="post" id="form_id"> 
<input type="text" name="ime"> 
<input type="button" id="submit" name="submit" value="Send"> 
</form> 

** get_ajax.php **

<?php 
$ime = $_POST['ime']; 

echo "Your name is $ime"; 
?>