1

私は jQuery と AJAX テクノロジに非常に慣れていません。ページを更新せずにデータベースに値を挿入するフォームを作成しようとしています。ほとんどのコードは期待どおりに機能しています。しかし、その中には期待どおりに動作しないケースが 2 つあります。

  1. チェックボックスを介して値を取得しています。チェックボックスを1つだけ選択すると機能しますが、複数のチェックボックスを選択すると、値がデータベースに配列として保存されます。
  2. フォームデータが正常に送信されたらメッセージを表示したいのですが、機能しません。

同じものについては、以下のそれぞれのコードを見つけてください。

Jクエリ:

$('#add').click(function(){
    var domain_type = $('#domain').val();
    var domain_zone = $('#domain_zone').val();
    var client_name = $('#client_name').val();
    //var language[] = "";
    var lang = new Array();
    if(language==1){
        //alert("You select one language"); 
        valid = true;
        lang = "English";
    }else{
        //alert("You select multiple language");

        var i =0;
        $.each($('input[name=lang]:checked'), function(){
            lang.push($(this).val());
        });             
        var count = lang.length;
        if(count ==1){
            alert("You need to select two languages");
            var valid = false;
        }else if(count>2){
            alert("You can select only two languages");
            var valid = false;
        }else{
            valid = true;   
        }
    }

        var formMsge = $('#formStatus');
        $('#formStatus').html('<img src="./img/loader.gif"> Please wait while adding the data in database.');
        $.ajax({
            type: "POST",
            url: "./test/test.php",
            data: {domain_type:domain_type, domain_zone:domain_zone, client_name:client_name, 'lang[]':lang},
            success:function(conf){
                $('#formStatus').ajaxComplete(
                    function(event,request){
                        if(conf=="OK"){
                            $('#formSuccess').show();
                            $('#addClient').hide();
                        }else{
                            $('#formError').show();
                            $('#forError').text("Please try again");
                        }
                    }
                );
            }                   
        });


    return false;
});

test.php:

include('../../classes/access_user/all.class.inc.php');
echo $workstream->addClient()

;

php クラスファイル:

public function addClient(){ $domain_type = isset($_POST['domain_type'])?$_POST['domain_type']:''; $domain_zone = isset($_POST['domain_zone'])?$_POST['domain_zone']:''; $client_name = isset($_POST['client_name'])?$_POST['client_name']:''; $lang = isset($_POST['lang'])?$_POST['lang']:''; $add_by = 'Robindra Singha'; $add_on = date("Y-m-d"); if(isset($domain_type) || isset($domain_zone) || isset($client_name) || isset($lang)){ $sql = "INSERT INTO client_list (domain_type_id, client_name, domain_zone, language, add_on, add_by, last_update_on, last_update_by) VALUES('$domain_type','$client_name','$domain_zone','$lang','$add_on','$add_by','$add_on','$add_by')"; $res = mysql_query($sql) or die(mysql_error()); if(mysql_inserted_id() != 0){ $msg = "OK"; }else{ $msg = "System face an issue while adding client details!"; } }else{ $msg = "System face an issue while adding client details, please try again!"; } return $msg; }

上記のコードでは、複数のチェックボックスを選択するとチェックボックスの値を渡すことができず、フォームが正常に送信されるとテキストを表示できないという問題があります。この 2 つの問題を除いて、私のコードは情報を正常に挿入できます。適切に作業を完了するために誰かが私を導いてくれれば幸いです。どうぞよろしくお願いいたします。

注: ここに貼り付けると、HTML ファイルを追加できません。通常のテキストとして表示されます。提案してください。

4

0 に答える 0