简体   繁体   English

通过AJAX传递多个值

[英]Pass Multiple values via AJAX

I am stuck in passing the multiple value through AJAX call in Codeigniter. 我被困在Codeigniter中通过AJAX调用传递多个值。

My View is : 我的看法是:

<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>

在此处输入图片说明

My Controller is : 我的控制器是:

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');

}

How can I pass Multiple Values of text box? 如何传递文本框的多个值? The above code is passing the values to the controller. 上面的代码将这些值传递给控制器​​。 But on clicking 'x' Button the value of text box is been getting deleted, but the id of the textbox is getting Incremented, Thus I am not able to pass the further values of textbox to controller via AJAX. 但是在单击“ x”按钮时,文本框的值已被删除,但文本框的id得到了递增,因此我无法通过AJAX将文本框的其他值传递给控制器​​。 Please help me over here. 请在这帮我。

instead of doing : 而不是做:

 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(),
                             }, 

You can do as 你可以做

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

If you have a remove button then getting the value by id may result in a js error, Why don't you make use of html element array: 如果您有删除按钮,则通过id获取值可能会导致js错误,为什么不使用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>

IT is very simple: IT非常简单:

Consider you want to pass: user name, surname, and country. 考虑您要传递的信息:用户名,姓氏和国家。 These are three input boxes then: 然后是三个输入框:

using Jquery do so: 使用Jquery这样做:

Javascript side Javascript方面

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

In your Model or controller where your Query will be handled 在要处理查询的模型或控制器中

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

in your case just pass parameters that YOU need. 在您的情况下,只需传递您需要的参数即可。 I use codignitter and this method works fine! 我使用编码器,此方法效果很好!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM