Javascript 通过AJAX传递多个值
我一直在通过Codeigniter中的AJAX调用传递多个值 我的看法是:Javascript 通过AJAX传递多个值,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我一直在通过Codeigniter中的AJAX调用传递多个值 我的看法是: <script> $( document ).ready(function() { var current_id = 0; $('#btn').click(function(){ nextElement($('#Outer_00')); }) function nextElement(element){ var newElement = element.clone()
<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>
如何传递文本框的多个值?上面的代码正在将值传递给控制器。但单击“x”按钮时,文本框的值被删除,但文本框的id正在增加,因此我无法通过AJAX将更多的文本框值传递给控制器。请帮我过来。不要做:
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(),
},
你可以随心所欲
data:$("#Form_id").serialize(); // all form data will be passed to controller as Post data.
如果您有一个remove按钮,那么按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>
音频:
这很简单:
考虑您想要传递:用户名、姓氏和国家。这些是
三个输入框:
使用Jquery执行以下操作:
Javascript端
在将处理查询的模型或控制器中
在您的情况下,只需传递所需的参数。我使用CodIgniter和
这个方法很好用
考虑到我想在数据库中插入这些数据,我怎样才能在控制器中获取这些数据呢?你们可以用通常的方法获取。像
$\u POST[“Phone”]
我试过这个,Controller:-var queryString=$('#form1')。serialize();视图:-$queryName=$this->input->post('queryString');变量转储($queryName);但这不起作用,希望是打字错误。视图:-var queryString=$('#form1').serialize();控制器:-$queryName=$this->input->post('queryString');变量转储($queryName);根据您的代码,没有queryString
。因此,您必须使用有效的字段名进行检查。var queryString是我通过ajax调用传递的变量。在控制器中,我正在获取相同的数据。对吗?若不建议将form1 formName、var queryString作为变量传递给控制器作为解决方案。
data:$("#Form_id").serialize(); // all form data will be passed to controller as Post data.
<div id="elements">
<div id="Outer_00">
Audio: <input type="text" name="audio[]" value="">
<input type="button" class="remove" value="x"></button>
</div>
</div>
$.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");