• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
ارسال مقادیر checkbox
#1
سلام من یک فرم دارم که یکسری checkbox داره ، فرمم قابلیت checkall هم داره ، چطوری میتونم مقادیر checkbox ها رو ارسال کنم ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟این کد جواب نمیده
کد

chekbox.html
کد:
<SCRIPT LANGUAGE="JavaScript">

<!-- Begin
function Check()
{
var len=document.getElementsByName("check_list").length;
//alert(len);
if(document.getElementsByName('Check_ctr').item('0').checked==true){
for (i = 0; i <len; i++)
document.getElementsByName("check_list").checked = true ;
}else{

for (i = 0; i <len; i++)
document.getElementsByName("check_list").item(i).checked = false ;
}
}


</script>
<form action="uu.php" method="post">
<input type="checkbox" name="check_list" value="1">ASP<br>
<input type="checkbox" name="check_list" value="2">PHP<br>
<input type="checkbox" name="check_list" value="3">JavaScript<br>
<input type="checkbox" name="check_list" value="4">HTML<br>
<input type="checkbox" name="check_list" value="5">MySQL<br>

<input type="checkbox" name="Check_ctr" value="yes"
onClick="Check()"><b>Check Control</b>
<input type="submit"  name="submit">
</form>
-------------
uu.php
کد:
<?php
if(isset($_POST['check_list']))
{
$checked = $_post['check_list'];
foreach($checked as $item) {
echo "Item $item was checked<br />";
}
}
?>
در ضمن میخوام قابلیت checkall که با جاوا گذاشتمم عمل کنه بازم ،[/php] اخه وقتی نام آرایه که check_list میذارم check_list[] اون جاوا اسکریپت عمل نمی کنه ولی خب درستش اینه که نام checkbox بصورت check_list[] باشه
  پاسخ
تشکر شده توسط :
#2
می تونم ازتون بپرسم که چرا از یه کتابخونه ی خوب مثل جی کوئری استفاده نمی کنی؟
همه جوره اش رو داریم ظاهرن
  پاسخ
تشکر شده توسط : undefined hamid_80386
#3
خب، من با استفاده از جی کوئری میگم چون درستش هم همینه.

تابع زیر چک باکس های انتخاب شده رو توی ارایه انجمنی che قرار میده

کد:
var che=new Array();
che={'key':'checkbox'};
function showValues()
{
    var fields = $(":checkbox").serializeArray();
    jQuery.each(fields, function(i, field){
            che[field.name]=field.value;
    });
}

کافیه هنگام ارسال فرم از این تابع استفاده و متغییر che رو به سرور بفرستید.
البته مقدار دهی به صورت ارایه اونم از نوع انجمنیش روشی هست که من ازش استفاده میکنم چون اینطور باهاش راحتم. شما میتونی هر طور که دوست دارین این متغییر رو مقدار دهی کنید.

انتخاب همه:

کد:
function checkAll()
{
    $(":checkbox").attr('checked', true);
}

عدم انتخاب همه:

کد:
function noCheck()
{
    $(":checkbox").attr('checked', false);
}

موفق باشید.
هر چیزی که در جستن آنی آنی...
غایب
  پاسخ
تشکر شده توسط : hamid_80386
#4
اولاً چک باکس هاتون رو وقتی یه اسم دارن باید بصورت آرایه ارسال کنید:
کد پی‌اچ‌پی:
name="check_list[]" 
بعد هم با جی کوئری میتونید راحت همه رو انتخاب کنید، همه چک باکس ها رو داخل یه div بزارید و ID اون div رو هم مثلاً میزاریم: Checks
بعد هم تابع جی کوئری رو برای این منظور به این صورت صدا میکنیم:
کد:
    $(function () {
        $('#checkalls').click(function () {
            $(this).parents('#Checks').find(':checkbox').attr('checked', this.checked);
        });
    });
id اون چک باکسی رو هم که همه رو انتخاب میکنه گذاشتیم: checkalls

در کل کد یه همچین چیزی میشه:
کد:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ASP PHP JavaScript HTML MySQL&nbsp; C</title>
<script src="http://code.jquery.com/jquery-1.5.2.min.js"></script>
<script type="text/javascript" language="javascript">
    $(function () {
        $('#checkalls').click(function () {
            $(this).parents('#Checks').find(':checkbox').attr('checked', this.checked);
        });
    });
</script>
</head>

<body>
<div id="Checks">
    <form action="uu.php" method="post">
        <input type="checkbox" name="check_list[]" value="1"/>ASP<br/>
        <input type="checkbox" name="check_list[]" value="2"/>PHP<br/>
        <input type="checkbox" name="check_list[]" value="3"/>JavaScript<br/>
        <input type="checkbox" name="check_list[]" value="4"/>HTML<br/>
        <input type="checkbox" name="check_list[]" value="5"/>MySQL<br/>
        
        <input type="checkbox" name="Check_ctr" value="yes" onClick="Check()" id="checkalls"/>
        <b>Check Control</b>
        <input type="submit"  name="submit"/>
    </form>
</div>
</body>

</html>

تو صفحه uu.php هم باید باید اول POST_$ چک باکس ها رو تو یه آرایه ذخیره کنید و بعدم استفاده کنید:
کد پی‌اچ‌پی:
$Checks=$_POST['check_list'];
foreach(
$Checks as $Ch)
{
    ...


اکسکیوزمی احسان جان Rolleyes دفعه اول پست رو باز کردم پست شما نبود Tongue جسارت شد Blush
هر که با مرغ هوا دوست شود - خوابش آرامترین خواب جهان خواهد بود.
  پاسخ
تشکر شده توسط : undefined
#5
سلام خیلی ممنون
اخه من jquary یاد ندارم ، چون جاوا اسکریپت کار کردم با همون نوشته بودم اونم تو selectall همین مشکل آرایه گرفتن رو داشت ، با این کد مشکلم حله

میشه این خط کد و واسم توضیح بدین ؟؟؟؟؟؟؟؟ بازم ممنون
،
کد پی‌اچ‌پی:
$(this).parents('#Checks').find(':checkbox').attr('checked'this.checked); 
  پاسخ
تشکر شده توسط :
#6
(۱۳۹۱ تير ۱۸, ۰۹:۳۳ ب.ظ)hamid_80386 نوشته: اکسکیوزمی احسان جان Rolleyes دفعه اول پست رو باز کردم پست شما نبود Tongue جسارت شد Blush

خواهش میکنم، چه جسارتی؟
هدفمون مشترکه و این موضوع هم(ارسال دو تاپیک به صورت همزمان) یه جور همکاریه Wink
هر چیزی که در جستن آنی آنی...
غایب
  پاسخ
تشکر شده توسط : hamid_80386


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان