1

<select>ユーザーがからオプションを選択し、選択した値に日付を追加する関数を作成しようとしています(<input type='text'>同じ行内)。次に、フィールドが入力されたら、配列としてPHPファイルに送信し、データベースに挿入します。

を作成していて、テーブルの同じ行<select><input type='text'>動的に配置しています。

選択は次のようになります。<input type='select' class='add_absence_type'>
入力フィールド:<input type='text' class='add_absence_date'>

私が取り組んでいるスクリプトは、現時点では次のようになっています。

$('#save').click(function() {
function serealizeSelects (select)
    {
        var array = [];
        select.each(function(){ array.push($(this).val()) });
        return array;
    }
function serealizeInputs (input)
    {
        var array = [];
        input.each(function(){ array.push($(this).val()) });
        return array;
    }
    var student_id = $('#student_id').val();
    var add_absence_type = serealizeSelects($('.add_absence_type'));
    var add_absence_date = serealizeInputs($('.add_absence_date'));

    $.post('../updateAbsence.php', {

    student_id: student_id,
    add_absence_type: add_absence_type,
    add_absence_date: add_absence_date

    }, function(data) {
        location.reload();
    });
});

データは次の$_POSTようになります。

student_id  1
add_absence_date[]  2012-11-13
add_absence_date[]  2012-11-14
add_absence_type[]  1
add_absence_type[]  2

このようなを作成するPHPループを作成するには、何をする必要がありますmysql_queryか?下記参照:

"INSERT INTO my_table (student_id, absence_type_id, absence_date) VALUES ('1', '1', '2012-11-13')"

"INSERT INTO my_table (student_id, absence_type_id, absence_date) VALUES ('1', '2', '2012-11-14')"

4

1 に答える 1

1

この方法を試してください

<?php
$student_id = $_POST['student_id'] ;
$absence_date_arr = $_POST['add_absence_date'] ;
$absence_type = $_POST['add_absence_type'] ;

foreach($absence_date_arr as $key=> $absence_date){
    mysql_query("INSERT INTO my_table (student_id, absence_type_id, absence_date) VALUES ('".$student_id."', '".$absence_type[$key]."', '".$absence_date."')");  
}
?>
于 2012-11-14T08:45:52.820 に答える