1

jQuery フォーム ウィザードを使用してフォームを作成しました。すべてのセクションが正常に機能し、最後のタブでは、送信前に入力を確認する機会がユーザーに与えられます。

送信時に、データをデータベースに送信するために以下のコードを配置しました。私の問題は、POST データがデータベースに到達しないことです。行が挿入されますが、それは空白行です。

挿入をテストし、データを手動で入力して、送信をクリックするとデータベースに入力されるようにしました。

フォームからデータベースにデータを取得するにはどうすればよいですか?

$('#form_myform1').find('.button-previous').hide();
        $('#form_myform1 .button-submit').click(function (e) {
            $.ajax({
                url:'includes/myforms/myforms_form1.php',
                data:$(this).serialize(),
                type:'POST',
                success:function(data){
                    console.log(data);
                    $(".alert-success").show().fadeOut(5000);
                },
                error:function(data){
                    $(".alert-danger'").show().fadeOut(5000);
                }
            });
        }).hide();

私のPHP POSTコード(はい、PDOではないことはわかっています;-) PDOとこの場所からのinit.phpファイルに他の問題があるため、今のところmysql_を使用しています。)

<?php
require '../../assets/functions/core/cnn.php';

if(!empty($_POST['appraisename'])) {
    $appraisename = htmlspecialchars(trim($_POST["appraisename"]));
}

$form1sql = "INSERT INTO myforms_personaldetails (name)
            VALUES('".$appraisename."') ";
    mysql_query($form1sql) or die(mysql_error());
?>
4

2 に答える 2

2

あなたの問題は、data:$(this).serialize(),. そのthis行のは、フォームではなくボタンを参照しています...

その行を次のように変更します。

data:$("#form_myform1").serialize(),- そして、これは正しく動作するはずです。

ただし、あなたの場合、これはまだ何か空白を返しているようです。

とにかく、1ビットのデータしか使用していないので、データを明示的に設定するだけです:

data : { apprasename : $("#idOfYourInputBox").val() }

なぜserialize()うまくいかなかったのか --- フォームのマークアップを見る必要があります...

于 2014-11-14T19:47:31.777 に答える