2012-02-22 7 views
0

postメソッドはjqueryの私は名前、パスワード、および電子メールを送信しjqueryのPOSTメソッドを持って

function postData() 
{ 
    thisBtn = $(this); 
    parent = $(this).parent(); 
    name = parent.data('name'); 
    password = parent.data('password'); 
    email =parent.data('email'); 
    $.post('register.php', {name: (name), password: (password), email: (email)},  function(data) ; 
    parent.next('#message').html(data); 
} 

onclickの機能を実行し、ボタンをregister.phpしますボタンが押されたときに起こる

+0

をどのようにあなたのonclickイベントを結合していますか? – IanW

+0

ボタン名を保存 – foshoeiyyy

+1

まず、基本的なデバッグから始めてください。 Firebugのようなものを使用し、実際に何が起こっているかを見るためにコードにブレークポイントを入れてください。 (何も起こっていないと言っているのとは対照的に)関数は実際に呼び出されますか?そうであれば、関数内の変数はどのように設定されていますか?それは '$ .post()'の呼び出しまで及んでいますか?その時のオブジェクトの状態はどうですか?ここでは、基本的なデバッグを行う必要があります。さもなければ、このコードでは多すぎる可能性があります。 – David

答えて

3

postDataを関連オブジェクトなしで呼び出すため、関数thisはと同じですあなたがアクセスする要素のどれもあなたが期待するものではありません。

intrinsic event attributesを使用しないでください。JavaScriptを使用してハンドラをバインドしてください。すでにjQueryを使用しているので、the methods it provides for thatを使用してください。

<button onclick='postData(this)' class='regular' name='save'> 

のか:

+0

すべてのソリューション?ありがとう – foshoeiyyy

+0

更新された回答を参照してください。 – Quentin

+0

機能が名前パスワードのメールアドレスを見つける場所を知っていない – foshoeiyyy

1

この構文は

いずれかのonclickを渡すと、オブジェクト...

$.post('register.php', {name: (name), password: (password), email: (email)},  function(data) ; 
    parent.next('#message').html(data); 
// no {} for function, no closing) for $post, and premature ; 

$.post('register.php', {name: (name), password: (password), email: (email)}, function(data) { 
    parent.next('#message').html(data); 
}); 
+0

実際には、「何も起きていないようだ」というのは、ブラウザがJavaScriptエラーを投げていると言って、OPがどこを探しているのかわからないそれら。 – David

+1

それでも "parent"はjQueryオブジェクトではないため、呼び出す関連のnext()関数はありません。 ($(これ)は無意味ですので、parent()はおそらく空のjQueryオブジェクトになります) – Dave

+0

何らかの理由でまだ動作していません – foshoeiyyy

0

あなたは2つのオプションを持って試してみてくださいマングルされたに見えますclを添付jQueryの使用ICKハンドラ - のjQueryを使用して好適な方法を:

$('input[name="save"]').click(function() { 
    // your post code here 
}}; 

、このようなポストデータを送信onclick='postData(this)'

0

は必要ないでしょう、あなたが適切な出力を取得します

名= 'デモ'; パスワード= '123456'; email = '[email protected]';

 $.post('register.php',{ 'name': name, 'password': password, 'email': email},function(html){ 

           alert(html);  
    },"html"); 

//register.php

は$ _POST [ 'name' を]エコー;

+1

$ .postのデータオブジェクトを作成するときにプロパティ名を文字列に入れる必要はありません。そうでなければ、名前が有効なjavascript変数名名前[] ') – Dave

0

jQueryを使用して、ボタンをクリックしてバインドすると、正しく動作させることができます。 (編集:また、のは、非非推奨の要素を使用してみましょう)

<input type='button' class='regular' name='save' id='btnPost' value='Post' /> 

Javascriptを:あなたはこの試みることができる

$(document).ready(function() { 
    $("#btnPost").on("click", function() { 
     var thisBtn = $(this); 
     var parent = thisBtn.parent(); 
     // Replacing this by serializing the parent form - 
     // not sure what parent.data is going to give without seeing the rest 
     // of the html 
     // name = parent.data('name'); 
     // password = parent.data('password'); 
     // email =parent.data('email'); 
     $.post('register.php', thisBtn.closest("form").serialize(),   
      function(data) { 
       parent.next('#message').html(data); 
      }); 
     }); 
    }); 
}); 
0

$(document).ready(function(){ 
    var $this = $('id_of_button'); 
    $this.click(function(){ 
      //ajax logic here 
      $.ajax({ 
       type: 'POST', 
       url: url, 
       data: data,//data to send to serverside 
       success: success, //function to call on success 
       dataType: dataType//datatype eg.text,json etc. 
      }); 
    }); 
}); 
関連する問題