2014-02-19 79 views
0

我被困在Codeigniter中通過AJAX調用傳遞多個值。通過AJAX傳遞多個值

我的看法是:

<script> 
$(document).ready(function() { 

    var current_id = 0; 
$('#btn').click(function(){ 
    nextElement($('#Outer_00')); 
}) 

function nextElement(element){ 
    var newElement = element.clone() 
    .find("input:text").val("").end(); 

    var id = current_id+1; 
    current_id = id; 
    if(id <10)id = "0"+id; 

    $('input', newElement).attr("id", id); 
    newElement.appendTo($("#elements")); 
      if($('#elements').find('div').length=='5') 
    { 
    $('#btn').prop('disabled',true); 
    } 
} 


$('#exercises').on('click', '.remove', function() { 
if($('#elements').find('div').length<'6') 
{ 

$('#btn').prop('disabled',false); 
} 
    if($('#elements').find('div').length=='1') 
{ 
    $('.remove').addAttr("disabled",true); 
} 

$(this).parent().remove(); 

return false; //prevent form submission 
}); 
}); 
</script> 

/*********

<script> 
var base_url = '<?=base_url()?>'; 
$(document).ready(function() 
    { 
     $('#Edit').click(function() 
     { 
      $('#Name').removeAttr("disabled"); 


    }); 

    $('#Add').click(function() 
    { 
     $('#Name').attr("disabled","disabled"); 
     $('#Phone').attr("disabled","disabled"); 
     $('#email').attr("disabled","disabled"); 
     $('#CurrentlyLocated').attr("disabled","disabled"); 
     $('#KeySkills').attr("disabled","disabled"); 
     //var queryString = $('#form1').serialize(); 



       $.ajax({ 
        url: '<?php echo site_url('PutArtistProfile_c/formDataSubmit');?>', 
        type : 'POST', //the way you want to send datas to your URL 
        data: {Name:$("#Name").val(), Phone: $("#Phone").val(), email: $("#email").val(), 
         birthday: $("#birthday").val(), bornIn: $("#bornIn").val(), 
         CurrentlyLocated: $("#CurrentlyLocated").val(), KeySkills: $("#KeySkills").val(), 
         Audio1: $("#00").val(), Audio2: $("#01").val(), Audio3: $("#02").val(),Audio4: $("#03").val(), Audio5: $("#04").val(), 
         },      
        success : function(data) 
        { //probably this request will return anything, it'll be put in var "data" 
        $('body').html(data);     

        } 
       }); 

    }); 
    }); 
</script> 

<p> 

<div id="elements"> 
<div id="Outer_00"> 
Audio: <input type="text" id="00" value=""> 
<input type="button" class="remove" value="x"></button> 

</div> 
</div> 

<div id="count"></div> 
<input type="button" id="btn" value="Add Audio"></button> 
</p> 

enter image description here

我的控制器是:

public function formDataSubmit() 
{ 

    $queryAudio1 = $this->input->post('Audio1'); 
      $queryAudio2 = $this->input->post('Audio2'); 
      $queryAudio3 = $this->input->post('Audio3'); 
      $queryAudio4 = $this->input->post('Audio4'); 
      $queryAudio5 = $this->input->post('Audio5'); 

} 

如何傳遞多VALU文本框的文本?上面的代碼將值傳遞給控制器​​。但是點擊'x'按鈕時,文本框的值已經被刪除,但是文本框的id正在增加,因此我無法通過AJAX將更多的文本框值傳遞給控制器​​。請幫我在這裏。

回答

1

而不是做:

data: {Name:$("#Name").val(), Phone: $("#Phone").val(), email: $("#email").val(), 
          birthday: $("#birthday").val(), bornIn: $("#bornIn").val(), 
          CurrentlyLocated: $("#CurrentlyLocated").val(), KeySkills: $("#KeySkills").val(), 
          Audio1: $("#00").val(), Audio2: $("#01").val(), Audio3: $("#02").val(),Audio4: $("#03").val(), Audio5: $("#04").val(), 
          }, 

如果你有一個刪除按鈕,然後讓通過ID值可能會導致JS錯誤你可以做

data:$("#Form_id").serialize(); // all form data will be passed to controller as Post data. 
+0

以及如何獲取控制器中的這些數據考慮我想在數據庫中插入這些數據? –

+0

你可以像往常一樣使用方法。像'$ _POST [「Phone」]' –

+0

我試過了,Controller: - var queryString = $('#form1')。serialize();查看: - $ queryName = $ this-> input-> post('queryString'); \t \t var_dump($ queryName);但這不起作用 –

0

,你爲什麼不利用HTML元素數組:

<div id="elements"> 
<div id="Outer_00"> 
Audio: <input type="text" name="audio[]" value=""> 
<input type="button" class="remove" value="x"></button> 
</div> 
</div> 
0

這是版本y簡單:

考慮你想傳遞:用戶名,姓氏和國家。這些都是 3然後輸入框:

使用jQuery這樣做:

JavaScript端

$.post("url",{name:name,surname:surname,country:country}, 
function(data){ 
    console.log("Query success"); 
}); 

在模型或控制器在您的查詢將被處理

$name=$this->input->post("name"); 
$surname=$this->input->post("surname"); 
$country=$this->input->post("country"); 

你的情況只是傳遞你需要的參數。我用codignitter和 這種方法工作正常!