2

私はHTMLフォームを持っています

<form method="POST" action="" name="myform" id="myform">
    <input type="text" name="email" id="email" />
    <input type="supmit" name="submit" id="submit"  value="submit" />
</form>

そしてjQueryのコード:

$(document).ready(function(){
    var validator = $("#myform").validate({
        ignore: ".ignore",
        rules: {...},
        messages: {...},
        submitHandler: function(form) {
            $.post('usr.php?resetpw', $(this).serialize(), function (data, textStatus) {
                form.submit();
                alert(data.inf);
            },'json');
        },
});

isset($_POST['email'])また、$_POST 変数 ( = false)を取得しない PHP コード usr.php

if(isset($_GET['resetpw'])) {
    $loggingData = array(
        'inf' => utf8_encode("Your email address is: ".$_POST['email']),
        'errorEmail' => '',
        'mailExists' => '',
        'success' => '',
    );
}
echo json_encode($loggingData);

到達した変数をPHPにポストする正しいコードは?

ありがとうございました

4

3 に答える 3

4

validateここからプラグインのソースを確認しましたhttp://jquery.bassistance.de/validate/jquery.validate.js

submitHandlerそして、それはこのように呼んでいます

 validator.settings.submitHandler.call( validator, validator.currentForm );

つまり、 ではなくthisを参照するため、引数を使用してフォームを参照し、このようにフィールドをシリアル化しますvalidator objectformform

 $(form).serialize()
于 2012-06-02T10:52:49.610 に答える
2

シリアライズしformないthis。したがって、submithandler は以下のようになります。

submitHandler: function(form) {
        $.post('usr.php?resetpw', $(form).serialize(), function (data, textStatus) {
            form.submit();
            alert(data.inf);
        },'json');
},
于 2012-06-02T10:51:51.770 に答える
0
$("#form_id").trigger('submit');

これを試して

于 2012-06-02T12:27:39.937 に答える