2014-10-03 40 views
0

對不起,我的英語不太好。而我是新手:)Ajax - 如何提交一個輸入值 - Codeigniter

我想在Codeigniter中用ajax更新一個一個的輸入值,但它不工作正確..只有一個保存按鈕(一種形式)工作,其他形式不工作..請幫我編輯下面的代碼

這裏的演示代碼:

查看:

<script> 
    $(function(){ 
     $(".submit45").click(function(){ 

     dataString = $("#prod_upd").serialize(); 
     $.ajax({ 
      type: "POST", 
      url: "<?=PREFIX?>admin/update/change_ppx3/", 
      data: dataString, 
      success: function(data){ 
       console.log(data); 
       document.getElementById('dd').innerHTML=data; 
      } 
     }); 
     return false; 

     }); 
    }); 
</script> 

<?$i=0;if(count($PPX) > 0)foreach($PPX as $item){$i++;?> 
<form name="prod_upd" id="prod_upd" method="post" > 
     <input type="text" name="p_ppx" id="p_ppx" size="8" value="<?= number_format($item['p_ppx'],0,'','')?>" class="i_ppx"> 
     <input type="hidden" name="ids_p" id="ids_p" size="8" value="<?=$item['id']?>" class="i_ppx"> 
     <input type="button" name="sub" id="sub" class="submit45" value="Save4" /> 
     <div id="dd" style="float: left;">hello</div> 
</form> 
    <?}else{?>         
    <div class="no_data">Nothing here</div> 
<?}?> 

控制器:

function change_ppx3(){ 
    $id_p = $_POST['ids_p']; 
    $rs = $this->ppx->get_ppx_by_id($id_p); 
    $ppx_value = $_POST['p_ppx']; 

    $this->ppx->update_ppx(array("id"=>$id_p),array("ppx_r"=>$ppx_value));   

    if($_POST['p_ppx']): 
     echo "done: "; 
     print_r($_POST['ids_p']); 
     echo "-"; 
     print_r($_POST['p_ppx']); 
     return true; 

    endif; 

    } 
+0

你想說什麼錯誤? – 2014-10-03 20:35:44

+0

您好Ronak,問題只有一個保存按鈕(一種形式)的工作,其他形式不工作,以及如何像這樣的多形式一個一個遞交價值 – comez 2014-10-03 20:39:42

回答

0

因爲每個表單都有相同的id =「prod_upd」。

測試這個

<script> 
$(function(){ 
    $(".prod_upd").submit(function(){ 

    var $this = $(this), dataString = $this.serialize(); 

    $.ajax({ 
     type: "POST", 
     url: "<?=PREFIX?>admin/update/change_ppx3/", 
     data: dataString, 
     success: function(data){ 
      console.log(data); 
      $this.find('.dd').html(data); 
     } 
    }); 
    return false; 

    }); 
}); 
</script> 

<?$i=0;if(count($PPX) > 0)foreach($PPX as $item){$i++;?> 
<form name="prod_upd" class="prod_upd" method="post" > 
    <input type="text" name="p_ppx" size="8" value="<?= number_format($item['p_ppx'],0,'','')?>" class="i_ppx"> 
    <input type="hidden" name="ids_p" size="8" value="<?=$item['id']?>" class="i_ppx"> 
    <input type="submit" class="submit45" value="Save4" /> 
    <div class="dd" style="float: left;">hello</div> 
</form> 
<?}else{?>         
<div class="no_data">Nothing here</div> 
<?}?> 
+0

非常感謝你,它現在用很簡單的PHP測試代碼,但在我的項目中:第一種形式(第一個輸入值)不起作用,當我點擊保存按鈕..它是重新加載頁面,如果錯誤只針對第一種形式,那麼我的js – comez 2014-10-04 02:42:43

+0

有什麼問題,那麼當$ i = 0時有些錯誤。 _或_幫助瀏覽器的JavaScript控制檯。添加一個錯誤函數到你的[$ .ajax](http://api.jquery.com/jQuery.ajax/) – cforcloud 2014-10-04 19:15:04