0

申し訳ありませんが、私の脳はこれについて完全に曇っています。検証でエラーが発生した場合に、ドロップダウンリスト 'editprojectSelect' を選択できるようにしたいと考えています。PS私が投稿した写真では、整数が必要な場所に「test」という文字列を具体的に入力したことがわかります。

     <div id="project-wijzigen" class="form">
        <h2> Wijzig een project </h2>       

        <select id="editprojectSelect" name="editprojectSelect" onchange="getDetails()">
        <option value="">-</option>
        </select>
        <?php echo '<input type="hidden" id="hidden-input" value="'.$_POST['editProjectSelect'].'">';?>
        <div id="editProject">
            <?php echo form_open('c_admin/wijzigProject');?>
                <h2 id="hoofding"></h2>
                <div><label> Project titel: </label> <input type="text" id="pt" name="titel" required value="<?php echo set_value('projecttitel'); ?>"/></div>
                <div><label> Startdatum: </label> <input type="text" id="sd" name="start" required value="<?php echo set_value('startdatum'); ?>"/></div>
                <div><label> Einddatum: </label> <input type="text" id="ed" name="eind" required value="<?php echo set_value('einddatum'); ?>"/></div>
                <div><label> In samenwerking met: </label> <input type="text" id="samen" name="samen" required value="<?php echo set_value('ism'); ?>"/></div>
                <div><label> Omschrijving: </label> <textarea id="omschr" name="text" required value="<?php echo set_value('text'); ?>"></textarea></div>
                <input type="hidden" id="hiddenID" name="hiddenID" />

                <input type="submit" name="submit" value="Wijzig project"/>

            <?php echo form_close(); ?>
        </div>

     <?php  

// --------------------------- Error checking/display           
            if(isset($projectWijzigenError)) // check of de variabele wel een waarde heeft (als je die zomaar oproept en hij moest leeg of NULL zijn dan krijg je een error op je pagina)
                {
                if ($projectWijzigenError=='true') // ALS er een error is, dan opent de form terug en worden errors weergegeven
                {
?>
                    <script>
                    $("#editProjectSelect").val($('#hidden-input').val());
                    $('#project-wijzigen').show();
                    $(this).toggleClass('close');
                    </script>

<?php 
                echo validation_errors('<p class="error">'); 
                }  
                }
// -------------------------- End error checking/displaying             
?>

    </div>


---------------
        $(document).ready(function()
        {           
            $(function()
            { 
                $.ajax(
                {
                    url:"<?php echo site_url("c_admin/ajaxTitels");?>",
                    type: 'POST',
                    success: function(msg)
                    {                           
                        var jsonMsg = $.parseJSON(msg);
                        var count = Object.keys(jsonMsg).length;
                        for(var x = 0; x < count; x++)
                        {   
                            $("#projectSelect").append($("<option></option>").val(jsonMsg[x].ProjectID).html(jsonMsg[x].Projecttitel)); 
                            $("#delprojectSelect").append($("<option></option>").val(jsonMsg[x].ProjectID).html(jsonMsg[x].Projecttitel));
                            $("#editprojectSelect").append($("<option></option>").val(jsonMsg[x].ProjectID).html(jsonMsg[x].Projecttitel));             
                        }
                    }
                });       
            });     
        })
        function getDetails()
        {   
            //$("#editProject").empty();
            document.getElementById('editProject').style.display = "none";
            $(".error").empty();
            var sel = document.getElementById('editprojectSelect');
            var opt = sel.options[sel.selectedIndex];
            var p = opt.value;

            if(p != "")
            {
                document.getElementById('editProject').style.display = "block";
                //$("#editProject").append($("<label></label><br />").html("test"));
                $.ajax(
                {
                url:"<?php echo site_url("c_admin/ajaxProject");?>",
                type: 'POST',
                data: {project: p},
                success: function(msg)
                    {                       
                        var jsonMsg = $.parseJSON(msg);

                        $('#hoofding').html(jsonMsg.Projecttitel);
                        document.getElementById("pt").value = jsonMsg.Projecttitel;
                        document.getElementById("sd").value = jsonMsg.Startdatum;
                        document.getElementById("ed").value = jsonMsg.Einddatum;
                        document.getElementById("samen").value = jsonMsg.ISM;
                        document.getElementById("omschr").value = jsonMsg.Projecttekst;
                        document.getElementById("hiddenID").value = jsonMsg.ProjectID;

                    }
                });
            }
        }

ここに画像の説明を入力

4

1 に答える 1

0
$(document).ready(function()
{           
    $(function()
    { 
        $.ajax(
        {
            url:"<?php echo site_url("c_admin/ajaxTitels");?>",
            type: 'POST',
            success: function(msg)
            {                           
                var jsonMsg = $.parseJSON(msg);
                var count = Object.keys(jsonMsg).length;
                for(var x = 0; x < count; x++)
                {   
                    $("#projectSelect").append($("<option></option>").val(jsonMsg[x].ProjectID).html(jsonMsg[x].Projecttitel)); 
                    $("#delprojectSelect").append($("<option></option>").val(jsonMsg[x].ProjectID).html(jsonMsg[x].Projecttitel));
                    $("#editprojectSelect").append($("<option></option>").val(jsonMsg[x].ProjectID).html(jsonMsg[x].Projecttitel));             
                }
            }
        });       
    });
    if(isset($projectWijzigenError) AND ($projectWijzigenError == true)){
        var projectId = '<?php echo set_value('editProjectSelect'); ?>';
        //set the select field
        $("#editProjectSelect").val(projectId);
        //call the getDetails function to populate your fields
        getDetails();    
    }

あなたの<select>フィールドは<form>要素の中にありません。したがって、フォームを送信すると、フィールドは送信されず、PHP/codeigniter は古い値を認識しません。

できることは、選択フィールドをフォーム内に配置することです。フォームが送信され、検証エラーが発生した場合は、次の手順を実行します。

  1. の値を取得し、ajax 呼び出し後の jquery の一部で、フォームから取得した値に の値を設定しeditprojectSelectます。$(document).readyselect
  2. その後、getDetails()関数を呼び出します。
于 2013-10-13T16:50:06.233 に答える