بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

ارسال آرایه از طریق ajax

مدیریت گفتگو
MasterSPYware 9 سال پیش
آخرین تغییر: 9 سال پیش

سلام

من یک سری متغیر دارم که با ایجکس ارسال میشه

  <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تا باشه.

بعدش اینا رو میخوام با ایجکس بفرستم

دوستان راهنمایی میکنن؟

نظرات

پاسخ‌ها 10

مشاهده پاسخ صحیح
سجاد عباسی 9 سال پیش

 
data = [];
data[0] = 'test1';
data[1] = 'test2';
$.ajax({
type: "POST",
data: {
data:data
},
url: "index.php",
success: function(msg){
alert(msg);
}
});

نظرات

MasterSPYware 9 سال پیش

یعنی باید دستی شماره بذارم؟؟؟؟؟

درضمنا مقداراش متغیره-اونجا که نوشتم

اگه میشه روو مثال خودم مثال بزن-ممنون

نظرات

Sajad HP 9 سال پیش

کاملا داینامیک : 

 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 هست

نظرات

MasterSPYware 9 سال پیش

قربونت داداش.

همینه-فقط اگه ممکنه طبق این کد من بنویسین-یه ذره گیج شدم من

نظرات

Sajad HP 9 سال پیش
در کدی که قرار دادید هیچ مشخصه ای برای ارسال فرم وجود ندارد (submit). کد های خودتون رو ویرایش کنید تا بشه طبق اون چیزی نوشت.
MasterSPYware 9 سال پیش

آقا این کلا غلطه.

اصلا تعداد آرایه ها و مقدار 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();
}

نظرات

Sajad HP 9 سال پیش

کد دریافت مقدار آرایه ارسال شده در 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 در پاسخ قبلی ذکر شده کاملا تست شده و درست هستن . موفق باشید

نظرات

MasterSPYware 9 سال پیش

خب داداش طبق فایل php خودم که ارسال کرده بودم برات تکلیف این خط من چی میشه؟

 $sql="insert into stat_option_select (option_title,id_parent) values ('{$check[$i]}','$id') ";

نظرات

Sajad HP 9 سال پیش
اگه طبق کدی که قرار دادم بنویسید باید بجای '$check[$i]}' از عبارتی که در foreach به عنوان value در نظر گرفتید استفاده کنید.
MasterSPYware 9 سال پیش

داداش توو این قسمت من خیلی خنگم.

خودت ویرایشش میکنی؟ممنون

نظرات

Sajad HP 9 سال پیش

 پاسخ صحیح

 اختیار دارید دوست عزیز.

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

یه همچین چیزی میشه طبق قطعه کدی که قرار دادید.

نظرات

MasterSPYware 9 سال پیش

احسنت به شما دوست من

ایشاله یه 4wd بخری 

:))

نظرات

Sajad HP 9 سال پیش
مرسی. همچنین ;-))

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .