PDA

View Full Version : سوال: تغییر مقدار checkbox بعد از دریافت سمت سرور



mehdiv
چهارشنبه 10 دی 1393, 18:05 عصر
با سلام خدمت تمامی عزیزان
یه سوال دارم که هرچقدر گشتم جواب پیدا نکردم
من کد زیر رو نوشتم برای بررسی متغییری که از فرم میاد


if (htmlentities(isset($_POST['xxx']))) {
$asasa= htmlentities($_POST['xxx']);
..........
}

البته این فقط یه تکه کد از کد هست
این میاد مقدار یک چک باکس رو دریافت میکنه که بعد قراره توی صفحه نمایش داده بشه که کدوم چک باکس ها تیک خوردن و مقدارشون چی بوده
حالا یه مشکلی هست
مقدار پیشفرضی که برای همه چک باکس ها گذاشتم 1 هست یعنی موقعی که یک چک باکس رو تیک میزنیم مقدار 1 رو چاپ میکنه
حالا من 2 تا سوال دارم
یک این که آیا امکان این هست که بعد از دریافت اطلاعات چک باکس مقدار داخلش رو برای چاپ تغییر داد ؟
یعنی این که اگه مقدار پیشفرض 1 هست بعد از این که توسط متغییر ما دریافت شد مثلا از یک به salam تغییر کنه ؟

سوال دو این که مشکلی که هست اینه که من 10 تا چک باکس دارم و برای هر 10 تا متغییر نوشتم که اطلاعات رو دریافت کنه و نشون بده
اما موقعی که من فقط 9 تاشو تیک میزنم ارور میده و میگه اطلاعات متغییر مثلا x1 دریافت نشد
چجوری میشه اینو حل کرد که مثلا اگه متغییر x1 تیک نخورده بود اتوماتیک به سراغ شرط بعدی بره یعنی متغییر x2

HaZeM+
چهارشنبه 10 دی 1393, 18:30 عصر
inputA اسم چک باکس اوله

<?php
if(isset($_POST)) {
$farsi = array(
'inputA_1' => 'input 1 mosavi ba 1 ast',
'inputA_2' => 'input 1 mosavi ba 2 ast'
//, ...
)
foreach ($_POST as $p => $v) {
echo $farsi[$p.'_'.$v].'<br>';
}
}

MMSHFE
پنج شنبه 11 دی 1393, 08:38 صبح
$chk1 = (isset($_POST['chk1']) ? 'salam' : null);
$chk2 = (isset($_POST['chk2']) ? 'salam' : null);
$chk3 = (isset($_POST['chk3']) ? 'salam' : null);
$chk4 = (isset($_POST['chk4']) ? 'salam' : null);
$chk5 = (isset($_POST['chk5']) ? 'salam' : null);
$chk6 = (isset($_POST['chk6']) ? 'salam' : null);
$chk7 = (isset($_POST['chk7']) ? 'salam' : null);
$chk8 = (isset($_POST['chk8']) ? 'salam' : null);
$chk9 = (isset($_POST['chk9']) ? 'salam' : null);
$chk10 = (isset($_POST['chk10']) ? 'salam' : null);
البته اگه منطق برای همه یکیه، میتونید خلاصه کنید:

for($i = 1; $i <= 10; $i++) {
$name = 'chk' . $i;
$$name = (isset($_POST[$name]) ? 'salam' : null);
}

mehdiv
جمعه 12 دی 1393, 04:39 صبح
آقای شهرکی یه سوال
الان یه مشکل ایجاد شد
ما یه کادر داریم که متغییر های بالا توشون چاپ میشه تا اینجای کار درسته
اگر هم که تیک نخورده بود هم چاپ نمیشه
حالا چجوری میشه جای خالیشو تو صفحه پر کرد ؟
مثلا



1 6
2 7
3 8
4 9
5


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




1 6
7
3 8
9
5


الان شماره 2 و 4 تیک نخوردن و جاشون خالی شد !!! چجوری میشه این مشکل رو حل کرد که موقعی که جای یکیش خالی شد یکی دیگه جاشو بگیره ؟؟

MMSHFE
جمعه 12 دی 1393, 09:22 صبح
شما کدی که اونها رو نمایش میدین رو بگذارین تا بگم چه تغییری لازمه ایجاد کنید.

mehdiv
شنبه 13 دی 1393, 13:32 عصر
// output some RTL HTML content
$html = "► $chk1";
//.$chk1 position
$pdf->MultiCell(49, 5, $html, 0, 'L', false, 'LTR', 14, 85, true, 0, true, true, 0, 'T', false);

$html = "► $chk2";
//.$chk2 position
$pdf->MultiCell(35, 5, $html, 0, 'L', false, 'LTR', 14, 93, true, 0, true, true, 0, 'T', false);

$html = "► $chk3";
//.$chk3 position
$pdf->MultiCell(39, 5, $html, 0, 'L', false, 'LTR', 14, 101, true, 0, true, true, 0, 'T', false);

$html = "► $chk4";
//.$chk4 position
$pdf->MultiCell(39, 5, $html, 0, 'L', false, 'LTR', 14, 109, true, 0, true, true, 0, 'T', false);

$html = "► $chk5";
//.$chk5 position
$pdf->MultiCell(60, 5, $html, 0, 'L', false, 'LTR', 14, 117, true, 0, true, true, 0, 'T', false);

$html = "► $chk6";
//.$chk6 position
$pdf->MultiCell(35, 5, $html, 0, 'L', false, 'LTR', 100, 85, true, 0, true, true, 0, 'T', false);

$html = "► $chk7";
//.$chk7 position
$pdf->MultiCell(39, 5, $html, 0, 'L', false, 'LTR', 100, 93, true, 0, true, true, 0, 'T', false);

$html = "► $chk8";
//.$chk8 position
$pdf->MultiCell(34, 5, $html, 0, 'L', false, 'LTR', 100, 101, true, 0, true, true, 0, 'T', false);

$html = "► $chk9";
//.$chk9 position
$pdf->MultiCell(34, 5, $html, 0, 'L', false, 'LTR', 100, 109, true, 0, true, true, 0, 'T', false);

MMSHFE
یک شنبه 14 دی 1393, 09:03 صبح
خوب با یه if قبلش چک کنید اگه اون خونه تیک نخورده بلاکش رو نگذارین.

mehdiv
یک شنبه 14 دی 1393, 14:27 عصر
خوب يه سوال اگه يه شرط واسش بزاريم بعد چي ميشه
منظورم اينه كه توي كد جاي هركدوم از چك باكس ها رو معلوم كرديم يعني مثلا check1
تعيين كرديم كه ٢٠ px فاصله از چپ و ١٨٠ px فاصله از بالا حالا اگه يكيش خالي بشه و قرار باشه يكي ديگه جاشو بگيره اين فاصله ها چي ميشه ؟

MMSHFE
یک شنبه 14 دی 1393, 14:53 عصر
بهتره برای دو ستون، دو کلاس مختلف تعریف کنید و بعد یک متغیر با مقدار برابر با اسم کلاس اول داشته باشین و هربار یک مقدار چاپ شد، کلاس رو سوئیچ کنید روی اون یکی تا عنصر بعدی با کلاس جدید نمایش داده بشه.

mehdiv
یک شنبه 14 دی 1393, 15:21 عصر
به نظر شما روش ديگه اي وجود نداره كه بشه اينو يه جوري درست كرد ؟
هدف اصلي اينه كه توي فايلي كه توليد ميشه اون چك باكس هايي كه تيك خوردن معلوم بشه
حالا به نظر شما چه ايده اي ميشه براي اين كار پياده كرد ؟
مثلا گذاشتن علامت يا چاپ يه مقدار ديگه به جاي اون متغيير چاپ نشده ؟