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. 获取 的值editprojectSelect,并在$(document).readyajax 调用后的部分 jquery 中,将 的值设置为select您从表单中获得的值。
  2. 之后,调用该getDetails()函数。
于 2013-10-13T16:50:06.233 回答