ارسال آرایه از طریق ajax
سلام
من یک سری متغیر دارم که با ایجکس ارسال میشه
<div class="col s3 float">
<!-- Switch -->
<div class="switch m-b-md float">
<label class="s3 float">
<?php echo $options; ?>
<input value="<?php echo $options ?>" type="checkbox" name="check[]">
<span class="lever"></span>
</label>
</div>
</div>
مقدار و تعداد check[] همیشه متغیره.
یه با ممکنه 10تا باشه-یه بار ممکنه 100تا باشه.
بعدش اینا رو میخوام با ایجکس بفرستم
دوستان راهنمایی میکنن؟
data = [];
data[0] = 'test1';
data[1] = 'test2';
$.ajax({
type: "POST",
data: {
data:data
},
url: "index.php",
success: function(msg){
alert(msg);
}
});
یعنی باید دستی شماره بذارم؟؟؟؟؟
درضمنا مقداراش متغیره-اونجا که نوشتم
اگه میشه روو مثال خودم مثال بزن-ممنون
کاملا داینامیک :
var btnChange = $("#btn-change");
btnChange.on('click', function(){
var id_post = $("#post_id").data("postId");
var members = new Array();
members = $('.members:checked').serialize();
$.ajax('/post/ajax/change-post/', {
type: 'post',
data: {
id : id_post,
members: members
},
success: function(data){
console.log(data);
}
});
});
در قسمت html هم checkbox های شما باید دارای کلاس های یکسانی باشند . مثلا در کد بالا members هست
قربونت داداش.
همینه-فقط اگه ممکنه طبق این کد من بنویسین-یه ذره گیج شدم من
آقا این کلا غلطه.
اصلا تعداد آرایه ها و مقدار value اونا رو نمیفرسته-فقط الان توو دیتابیس من داره کلمه c ثبت میشه
html:
<div class="col s3 float">
<!-- Switch -->
<div class="switch m-b-md float">
<label class="s3 float">
گزینه یک
<input class="check" value="گزینه یک" type="checkbox" name="check[]">
<span class="lever"></span>
</label>
</div>
</div>
<div class="col s3 float">
<!-- Switch -->
<div class="switch m-b-md float">
<label class="s3 float">
گزینه دو
<input class="check" value="گزینه دو" type="checkbox" name="check[]">
<span class="lever"></span>
</label>
</div>
</div>
کد ajax:
var check = new Array();
check = $('.check:checked').serialize();
$.ajax({
url:'confirm.php',
type:'POST',
data:{
check:check
}
کد صفحه confirm.php
if(isset($_POST['check'])){
$check = $_POST['check'];
for($i =0;$i<count($check);$i++){
$sql="insert into stat_option_select (option_title,id_parent) values ('{$check[$i]}','$id') ";
$stmt=$db->prepare($sql);
$stmt->execute();
}
کد دریافت مقدار آرایه ارسال شده در php :
if(isset($_POST['members'])){
$arr = array();
parse_str($_POST['members'], $arr);
if(sizeof($arr)>0)
{
foreach ($arr['members'] as $member) {
// insert into database => $member
}
}
}
کد هایی که برای ارسال آرایه توسط ajax در پاسخ قبلی ذکر شده کاملا تست شده و درست هستن . موفق باشید
خب داداش طبق فایل php خودم که ارسال کرده بودم برات تکلیف این خط من چی میشه؟
$sql="insert into stat_option_select (option_title,id_parent) values ('{$check[$i]}','$id') ";
اختیار دارید دوست عزیز.
if(isset($_POST['check'])){
$arr = array();
parse_str($_POST['check'], $arr);
if(sizeof($arr)>0)
{
foreach ($arr['check'] as $item) {
$sql="INSERT INTO stat_option_select (option_title) VALUES ($item)";
$stmt=$db->prepare($sql);
$stmt->execute();
}
}
}
یه همچین چیزی میشه طبق قطعه کدی که قرار دادید.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .