2013-10-13 59 views
0

我很抱歉,但我的大脑完全在这个雾化。 如果验证出现错误,我想要选择我的下拉列表'editprojectSelect'。附:在我发布的图片中,你可以看到我特别输入了一个字符串'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; 

        } 
       }); 
      } 
     } 

enter image description here

回答

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的价值,并在Ajax调用后的jQuery $(document).ready一部分,select的值设置为你从你的表格中获得。
  2. 之后,请拨打getDetails()函数。
+0

只好我们的代码更改为 '如果((typeof运算($ projectWijzigenError)!= “未定义” && $ projectWijzigenError ==真)){VAR 专案编号= '<?PHP的回声SET_VALUE(' editProjectSelect“) ; ?>'; //设置选择字段 $(“#editProjectSelect”)。val(projectId); //调用getDetails函数来填充字段 getDetails(); } })\t 现在即时搞清楚为什么我不能把选择的形式..不知何故,它不会显示,如果我把它放在那里:s – Firebirdz