这是我在codeigniter中的视图,其中我使用ajax将数据发布到我的控制器
<script type="text/javascript">
$(document).ready(function(){
// find the input fields and apply the time select to them.
$('#sample1 input').ptTimeSelect();
});
</script>
<script type="text/javascript">
function add_chamber() {
$.ajax({
url: '<? echo base_url("index.php/doctormain/add_chamber"); ?>',
type: "POST",
data: {
name : $("input#name").val(),
address : $("input#address").val(),
city : $("input#city").val(),
locality : $("input#locality").val(),
state:$("input#state").val(),
landline : $("input#landline").val(),
mobile : $("input#mobile").val(),
fees : $("input#fees").val(),
email : $("input#email").val(),
days : $("input#mon:checked").val() +$("input#tue:checked").val()+$("input#wed:checked").val()+$("input#thur:checked").val()+$("input#fri:checked").val()+$("input#sat:checked").val()+$("input#sun:checked").val(),
start : $("input#start").val(),
end : $("input#end").val(),
comments : $("input#comments").val()
},
success :function(response) {
$('#sucess').html(response);
$( "#sucess" ).dialog({
height: 140,
modal: true
});
},
error: function(){
alert("Error");
}
});
}
</script>
<div class="content">
<div class="content-left">
<div class="row1">
<h2>Welcome <? echo $username ?></h2>
<h1> Add Chamber </h1>
<h2><div id="sucess"></div></h2>
<?php echo form_open_multipart('doctormain/add_chamber');?>
<table width="100%">
<tr><td> Name:</td><td> <input name="name" type="text" id="name"></td></tr>
<tr><td> Address:</td><td> <input name="address" type="text" id="address"></td></tr>
<tr><td> City:</td><td> <input name="city" type="text" id="city"></td></tr>
<tr><td> Locality:</td><td> <input name="locality" type="text" id="locality"></td></tr>
<tr><td> State:</td><td> <input name="state" type="text" id="state"></td></tr>
<tr><td> Landline:</td><td> <input name="landline" type="text" id="landline"></td></tr>
<tr><td> Mobile:</td><td> <input name="mobile" type="text" id="mobile"></td></tr>
<tr><td> Email:</td><td> <input name="email" type="text" id="email"></td></tr>
<tr><td> Consultation Fees:</td><td> <input name="fees" type="text" id="fees"></td></tr>
<tr>
<td> Days Of Availability:</td><td>
Mon:<input name="mon" type="checkbox" id="mon" value="1" checked>
Tue:<input name="tue" type="checkbox" id="tue" value="2" checked>
Wed:<input name="wed" type="checkbox" id="wed" value="3" checked>
Thur:<input name="thur" type="checkbox" id="thur" value="4" checked>
Fri:<input name="fri" type="checkbox" id="fri" value="5" checked>
Sat:<input name="sat" type="checkbox" id="sat" value="6" checked>
Sun:<input name="sun" type="checkbox" id="sun" value="7" checked>
</td></tr>
<tr><td> Time Of Availability</td><td>
<div id="sample1" class="ui-widget-content" style="padding: .5em;">
<p>
<label>Start</label>
<input name="s1Time2" id="start" value="" />
<label>End</label>
<input name="s1Time2" id="end" value="" />
</p>
</div>
</td></tr>
<tr><td> Comments:</td><td> <input name="comments" type="testbox" id="comments" ></td></tr>
<tr><td> </td><td> <input name="submit" id="submit" class="button" type="button" value="Save" onclick="add_chamber()">
</td></tr>
<? echo form_close();?>
</table>
<div id="results">
</div>
</div>
</div>
<div class="content-right">
<div class="mainmenu">
<h2 class="sidebar1">My Menu</h2>
<p><ul>
<li><a href="#">this is a dummy link 1</a></li>
<li><a href="#">this is a dummy link 2</a></li>
<li><a href="#">this is a dummy link 3</a></li>
<li><a href="#">this is a dummy link 4</a></li>
<li><a href="#">this is a dummy link 5</a></li>
<li><a href="#">this is a dummy link 6</a></li>
<li><a href="#">this is a dummy link 7</a></li>
<li><a href="#">this is a dummy link 8</a></li>
<li><a href="#">this is a dummy link 9</a></li>
<li><a href="#">this is a dummy link 10</a></li>
</ul></p>
</div>
</div>
</div>
但是在我的jquery中
days : $("input#mon:checked").val() +$("input#tue:checked").val()+$("input#wed:checked").val()+$("input#thur:checked").val()+$("input#fri:checked").val()+$("input#sat:checked").val()+$("input#sun:checked").val(),
我只想传递所选复选框的值。
例如,如果选中了复选框id sun,它将仅传递7。
但我遇到的问题是,当我选择它时,例如mon,tue,sun,它正在通过12undefined。
任何人都可以帮我解决这个问题 谢谢 Somdeb
答案 0 :(得分:2)
尝试使用this方法:
days = $('input[type=checkbox]:checked').map(function() {
return this.value ;
}).get().join(',');
参见 Sample
答案 1 :(得分:1)
你可以通过each();
来做到这一点$("input:checkbox:checked").each()
$("input:checkbox[name=numbers]:checked")
将返回所有已选中复选框的数组,然后我们可以遍历该数组
以下是Example,
答案 2 :(得分:1)
而不是这样做,你可以遍历所有选中的复选框
$("input:checkbox:checked").each(function(){
days+=$(this).val();
}
答案 3 :(得分:1)
如果无效,请尝试使用.is()
进行检查。
示例强>
var passDays;
if($("#mon").is(':checked'))
{
passDays += $(this).val();
}
if($("#tue").is(':checked'))
{
passDays += $(this).val();
}
days : passDays,
您也可以将passDays
用作array
和push
值。
此外,您可以使用.each()
优化此代码,并使用.is(':checked')
然后push
将其与数组核对。
答案 4 :(得分:0)
试试这个: -
days : $("#mon:checked").val() +$("#tue:checked").val()+$("#wed:checked").val()+$("#thur:checked").val()+$("#fri:checked").val()+$("i#sat:checked").val()+$("#sun:checked").val()
答案 5 :(得分:0)
这就是为jQuery serialize
和find
制作的。
function add_chamber() {
$.ajax({
url: '<? echo base_url("index.php/doctormain/add_chamber"); ?>',
type: "POST",
data: { $(table).find(input, checkbox, textbox).serialize();
}
},
答案 6 :(得分:0)
你可以试试这个:
var days = {};
$('form input[type=checkbox]').each(function() {
days[$(this).attr('value')] = $(this).attr('checked');
});