2017-06-22 35 views
0

我正在使用jquery幫助將腳本提交到db中的腳本。 沒有在這段代碼使用循環,腳本工作的優良在codeigniter中使用循環時jQuery不工作

PHP:

<input type="text" class="form-control text-center" name="<?php echo 'rid' ?>" value="<?php echo $roww['id']; ?>"> 

但是當我使用循環,jQuery的沒有工作,同樣的價值觀並沒有插入到數據庫。 我期待所有值保存到一行中的數據庫。 但它現在的工作 DB where values save

form interface to submit

查看:

<?php echo form_open(site_url('start'), array('id' => 'login_form')); ?> 
<?php $i=0; $queryw = $this->db->query('SELECT * FROM plans'); 
    foreach ($queryw->result_array() as $roww) { 
?> 
<div style="float:left; width:40px; margin-left:10px"> 
    <div class="form-group"> 
     <input type="text" class="form-control text-center" name="<?php echo 'rid'.$i ?>" value="<?php echo $roww['id']; ?>"> 
    </div> 
</div> 
<?php $i++; } ?> 
<div class="error" id="logerror"></div> 
<button type="submit" id="btn-login" class="btn btn-warning btn-lg">Submit</button>  

JS:

<script> 
$(document).ready(function(){ 
    $('#login_form').validate(); 
    $(document).on('click','#btn-login',function(){ 
     var url = "<?php echo site_url('start/user_login');?>";  
      if($('#login_form').valid()){ 
       $('#logerror').html('<img src="<?php echo base_url();?>themes/images/btn-ajax-loader.gif" align="absmiddle">'); 
       $.ajax({ 
        type: "POST", 
        url: url, 
        data: $("#login_form").serialize(), // serializes the form's elements. 
        success: function(data) 
        { 
         if(data==1) 
         setTimeout('window.location.href = "<?php echo site_url('welcome/profile'); ?>"; ',4000); 
         else $('#logerror').html('Error: some values are missing.'); 
         $('#logerror').addClass("error"); 
        } 
       }); 
      } 
     return false; 
    }); 
}); 

控制器:

public function index() 
{ 
    $this->template->loadContent("game/start.php"); 
} 

public function user_login() 
{ 
    if($_POST['rid'.$i] == TRUE) : 
     $datas = array(
      'code' => $_POST['rid'.$i] 
      ); 
     $this->db->insert('pin', $datas); 
      echo 1; 
    else : 
     echo 0; 
    endif;   
} 
+0

1.執行任何錯誤消息顯示?無論是在開發者控制檯或從PHP。 2.你有沒有檢查你的PHP錯誤日誌? 3.在控制器中'$ i'似乎是未定義的。由於複製粘貼錯誤而缺少某些東西? – Terminus

+0

1.從Jquery顯示的錯誤是**錯誤:缺少一些值** 2.沒有php錯誤日誌3 /'$ i'被定義爲'$ i = 0;' – owebindex

+0

1.從Jquery顯示的錯誤是* *錯誤:缺少一些值。** 2.沒有php錯誤日誌3.'$ i'被定義爲'$ i = 0;' – owebindex

回答

0

首先,我想你的函數user_login()有問題。問題是$ i。 user_login()如何知道$ i是什麼或者它有什麼價值。 $ i永遠不會從您的ajax代碼發送到user_login()。當然,不會出現PHP錯誤,儘管您的答案始終爲'0',即'錯誤:某些值缺失'。在你的情況。

針對您的案例的解決方案將爲: 1.將$ i值從您的ajax代碼發送到user_login()。您可以通過在表單中​​爲$ i發送隱藏的輸入值來實現這一點,或者您可以使用其他替代方法。

<?php echo form_open(site_url('start'), array('id' => 'login_form')); ?> 
<?php $i=0; $queryw = $this->db->query('SELECT * FROM plans'); 
foreach ($queryw->result_array() as $roww) { 
?> 
<div style="float:left; width:40px; margin-left:10px"> 
    <div class="form-group"> 
     <input type="text" class="form-control text-center" name="<?php echo 'rid'.$i ?>" value="<?php echo $roww['id']; ?>"> 
    </div> 
</div> 
<?php $i++; } ?> 

// added line 
<input type="hidden" name="loop_val" value="<?=$i;?>" /> 

<div class="error" id="logerror"></div> 
<button type="submit" id="btn-login" class="btn btn-warning btn-lg">Submit</button> 
  • 所以,現在你的函數將是這樣的:

    public function user_login() 
    { 
        $j = 0; // for checking true values 
        for($i=0;$i<=$_POST['loop_val'];$i++) { 
         if($_POST['rid'.$i] == TRUE) { 
          $datas = array(
           'code' => $_POST['rid'.$i] 
          ); 
          $this->db->insert('pin', $datas); 
          $j++; 
         } 
        } 
        if($j != 0) { 
         echo 1; 
        } else { 
         echo 0; 
        } 
    } 
    
  • 希望這將解決您的問題

    +0

    我感謝您的努力。該問題沒有解決,從你的更正代碼開始插入數據庫和JS仍然顯示錯誤'回聲0;'。也沒有插入數據庫我如何預期...我希望所有的值在一行DBTable引腳,而不是創建不同的行。謝謝 – owebindex

    +0

    這裏是更新代碼:public function user_login() { $ j = 0; //用於檢查真實值 $ combine =''; //爲所有POST'rid' 組合變量($ i = 0; 」。$ i]; //在一個 $ j ++中組合所有'rid'POST值; ($ j> 0){ } if $ this-> db-> insert('pin',$ data); echo 1;其他{ echo 0; } } –

    +0

    哇......你是古茹,但我發現所有插入的值都以'0'結尾。 '0'來自哪裏?也插入成功後,Ajax仍然不重定向,但顯示錯誤。謝謝 – owebindex