PDA

View Full Version : سوال: مشکل در چک باکس



rash44
سه شنبه 18 فروردین 1388, 12:33 عصر
سلامتوی برنامم تکه کد زیر رو دارم


<?php
$Num = $_POST['num'];
for ($counter=0; $counter < $Num; $counter++)
{
$count = $counter+1;
$code ="<table border=\"0\" width=\"100%\" cellpadding=\"3\" cellspacing=\"2\"><tr>
<td align=\"center\" bgcolor=\"#F9F9F9\"><input type=\"checkbox\" name=\"hajhasan[]\" value=\"حاج حسن\" class=\"in\"></td>
<td align=\"center\" bgcolor=\"#F9F9F9\"><input type=\"checkbox\" name=\"hajali[]\" value=\"حاج علی\" class=\"in\"></td>
<td align=\"center\" bgcolor=\"#F9F9F9\"><input type=\"checkbox\" name=\"order[]\" value=\"سفارش\" class=\"in\"></td>
<td align=\"center\" bgcolor=\"#F9F9F9\"><input type=\"text\" name= number[] size=\"20\" class=\"in\" dir=\"rtl\"></td>
<td align=\"center\" bgcolor=\"#F9F9F9\"><input type=\"text\" name= pors[] size=\"20\" class=\"in\" dir=\"rtl\"></td>
<td align=\"center\" bgcolor=\"#F9F9F9\" width=\"183\"><input type=\"text\" name= sum[] size=\"20\" class=\"in\" dir=\"rtl\"></td>
<td align=\"center\" bgcolor=\"#F9F9F9\"><input type=\"text\" name= fi[] size=\"20\" class=\"in\"></td>
<td align=\"center\" bgcolor=\"#F9F9F9\"><input type=\"text\" name= meghdar[] size=\"20\" class=\"in\"></td>
<td align=\"center\" bgcolor=\"#F9F9F9\" width=\"183\"><input type=\"text\" name= name[] size=\"20\" class=\"in\" dir=\"rtl\"></td>
</tr></table>";
echo ("$code");
}
?>



بعد از اینکه توی بانک ثبت میشه 3 تا چک باکس مقدار ندارن و Array ذخیره شده
3 تا چک باکسه هیچ مقداری رو بر نمی گردونن
توی قسمت Valu اونها هم همه چیز رو امتحان کردم (عدد - حروف انگلیسی) اما باز هم چیزی رو بر نگردوندن
احتمالا بخاطر \ که توی قسمت value اونها بکار رفته
کسی راه حل مشکل رو میدونه ؟

narsic
سه شنبه 18 فروردین 1388, 12:45 عصر
با سلام
اگه hajhasan[] اگه این یکی از آرایه های شما هست پس $ کجاست ؟

narsic
سه شنبه 18 فروردین 1388, 12:50 عصر
دوست عزیز در PHP برای نشاندادن متغیر و آرایه باید از کاراکتر $ در ابتدای نام اون استفاده کنید .
کد صحیح شما با فرض اینکه مقدار name با آرایه مقدار دهی بشود :


<?php
$Num = $_POST['num'];
for ($counter=0; $counter < $Num; $counter++)
{
$count = $counter+1;
$code ="<table border=\"0\" width=\"100%\" cellpadding=\"3\" cellspacing=\"2\"><tr>
<td align=\"center\" bgcolor=\"#F9F9F9\"><input type=\"checkbox\" name=\"".$hajhasan[]."\" value=\"حاج حسن\" class=\"in\"></td>
<td align=\"center\" bgcolor=\"#F9F9F9\"><input type=\"checkbox\" name=\"".$hajali[]."\" value=\"حاج علي\" class=\"in\"></td>
<td align=\"center\" bgcolor=\"#F9F9F9\"><input type=\"checkbox\" name=\"".$order[]."\" value=\"سفارش\" class=\"in\"></td>
<td align=\"center\" bgcolor=\"#F9F9F9\"><input type=\"text\" name= ".$number[]." size=\"20\" class=\"in\" dir=\"rtl\"></td>
<td align=\"center\" bgcolor=\"#F9F9F9\"><input type=\"text\" name= ".$pors[]." size=\"20\" class=\"in\" dir=\"rtl\"></td>
<td align=\"center\" bgcolor=\"#F9F9F9\" width=\"183\"><input type=\"text\" name= ".$sum[]." size=\"20\" class=\"in\" dir=\"rtl\"></td>
<td align=\"center\" bgcolor=\"#F9F9F9\"><input type=\"text\" name= ".$fi[]." size=\"20\" class=\"in\"></td>
<td align=\"center\" bgcolor=\"#F9F9F9\"><input type=\"text\" name= ".$meghdar[]." size=\"20\" class=\"in\"></td>
<td align=\"center\" bgcolor=\"#F9F9F9\" width=\"183\"><input type=\"text\" name= ".$name[]." size=\"20\" class=\"in\" dir=\"rtl\"></td>
</tr></table>";
echo $code;
}
?>

rash44
سه شنبه 18 فروردین 1388, 13:38 عصر
دوست عزیز در PHP برای نشاندادن متغیر و آرایه باید از کاراکتر $ در ابتدای نام اون استفاده کنید .
کد صحیح شما با فرض اینکه مقدار name با آرایه مقدار دهی بشود :



<?php



$Num = $_POST['num'];
for ($counter=0; $counter < $Num; $counter++)
{
$count = $counter+1;
$code ="<table border=\"0\" width=\"100%\" cellpadding=\"3\" cellspacing=\"2\"><tr>
<td align=\"center\" bgcolor=\"#F9F9F9\"><input type=\"checkbox\" name=\"".$hajhasan[]."\" value=\"حاج حسن\" class=\"in\"></td>
<td align=\"center\" bgcolor=\"#F9F9F9\"><input type=\"checkbox\" name=\"".$hajali[]."\" value=\"حاج علي\" class=\"in\"></td>
<td align=\"center\" bgcolor=\"#F9F9F9\"><input type=\"checkbox\" name=\"".$order[]."\" value=\"سفارش\" class=\"in\"></td>
<td align=\"center\" bgcolor=\"#F9F9F9\"><input type=\"text\" name= ".$number[]." size=\"20\" class=\"in\" dir=\"rtl\"></td>
<td align=\"center\" bgcolor=\"#F9F9F9\"><input type=\"text\" name= ".$pors[]." size=\"20\" class=\"in\" dir=\"rtl\"></td>
<td align=\"center\" bgcolor=\"#F9F9F9\" width=\"183\"><input type=\"text\" name= ".$sum[]." size=\"20\" class=\"in\" dir=\"rtl\"></td>
<td align=\"center\" bgcolor=\"#F9F9F9\"><input type=\"text\" name= ".$fi[]." size=\"20\" class=\"in\"></td>
<td align=\"center\" bgcolor=\"#F9F9F9\"><input type=\"text\" name= ".$meghdar[]." size=\"20\" class=\"in\"></td>
<td align=\"center\" bgcolor=\"#F9F9F9\" width=\"183\"><input type=\"text\" name= ".$name[]." size=\"20\" class=\"in\" dir=\"rtl\"></td>
</tr></table>";
echo $code;
}
?>

کل input box ها همه آرایه هستند و مقدار هم بر مگردونن
فقط این check box ها مقدار نمی گیرین

امیـرحسین
چهارشنبه 19 فروردین 1388, 18:24 عصر
من درک نمی کنم که این یعنی چی؟

<input type=\"checkbox\" name=\"".$hajhasan[]."\" value=\"حاج حسن\" class=\"in\">

برای ایجاد آرایه، $ لازم نیست چون مستقیما وارد HTML میشه و اونجا هم $ معنی نداره


<?php
$Num = $_POST['num'];
for ($counter=0; $counter < $Num; $counter++)
{
$count = $counter+1;
$code ='
<table border="0" width="100%" cellpadding="3" cellspacing="2">
<tr>
<td align="center" bgcolor="#F9F9F9"><input type="checkbox" name="hajhasan[]" value="حاج حسن" class="in"></td>
<td align="center" bgcolor="#F9F9F9"><input type="checkbox" name="hajali[]" value="حاج علي" class="in"></td>
<td align="center" bgcolor="#F9F9F9"><input type="checkbox" name="order[]" value="سفارش" class="in"></td>
<td align="center" bgcolor="#F9F9F9"><input type="text" name= "number[]" size="20" class="in" dir="rtl"></td>
<td align="center" bgcolor="#F9F9F9"><input type="text" name= "pors[]" size="20" class="in" dir="rtl"></td>
<td align="center" bgcolor="#F9F9F9" width="183"><input type="text" name= "sum[]" size="20" class="in" dir="rtl"></td>
<td align="center" bgcolor="#F9F9F9"><input type="text" name= "fi[]" size="20" class="in"></td>
<td align="center" bgcolor="#F9F9F9"><input type="text" name= "meghdar[]" size="20" class="in"></td>
<td align="center" bgcolor="#F9F9F9" width="183"><input type="text" name= "name[]" size="20" class="in" dir="rtl"></td>
</tr>
</table>';
echo $code;
}
?>

rash44
چهارشنبه 19 فروردین 1388, 22:16 عصر
من درک نمی کنم که این یعنی چی؟

<input type=\"checkbox\" name=\"".$hajhasan[]."\" value=\"حاج حسن\" class=\"in\">

برای ایجاد آرایه، $ لازم نیست چون مستقیما وارد HTML میشه و اونجا هم $ معنی نداره


<?php
$Num = $_POST['num'];
for ($counter=0; $counter < $Num; $counter++)
{
$count = $counter+1;
$code ='
<table border="0" width="100%" cellpadding="3" cellspacing="2">
<tr>
<td align="center" bgcolor="#F9F9F9"><input type="checkbox" name="hajhasan[]" value="حاج حسن" class="in"></td>
<td align="center" bgcolor="#F9F9F9"><input type="checkbox" name="hajali[]" value="حاج علي" class="in"></td>
<td align="center" bgcolor="#F9F9F9"><input type="checkbox" name="order[]" value="سفارش" class="in"></td>
<td align="center" bgcolor="#F9F9F9"><input type="text" name= "number[]" size="20" class="in" dir="rtl"></td>
<td align="center" bgcolor="#F9F9F9"><input type="text" name= "pors[]" size="20" class="in" dir="rtl"></td>
<td align="center" bgcolor="#F9F9F9" width="183"><input type="text" name= "sum[]" size="20" class="in" dir="rtl"></td>
<td align="center" bgcolor="#F9F9F9"><input type="text" name= "fi[]" size="20" class="in"></td>
<td align="center" bgcolor="#F9F9F9"><input type="text" name= "meghdar[]" size="20" class="in"></td>
<td align="center" bgcolor="#F9F9F9" width="183"><input type="text" name= "name[]" size="20" class="in" dir="rtl"></td>
</tr>
</table>';
echo $code;
}
?>

ببین شما عدد 2 رو وارد می کنی
کد بالا 2 بار اجرا میشه و 2 سری فیلد های فئق زرو تولید میکنه که شما میتونی 2 عملیات ثبت توی بانک انجام بدی
ککلیه فیلدها هم گذاشتم از نوع آرایه

اون چیز یهم که شما گفتب درک نکردی 1 چک باکس هست از نوع آرایه بنام hajhasan
که اگه تیک بخوره مقدار حاج خسن را بگردونه
توی کد 3 تا چک باکس به همین صورت دارم
توی قسمت مقدار چک بامس ها همه چیزو امتحان کردم اما باز هم مقدار Array رو برگردوند

yaqubian
پنج شنبه 20 فروردین 1388, 09:06 صبح
دوست عزیز
موقعی که دارین مقدار آرایه ها رو چک می کنین اندیس می دین یا نه؟
موفق باشید

rash44
پنج شنبه 20 فروردین 1388, 11:38 صبح
دوست عزیز
موقعی که دارین مقدار آرایه ها رو چک می کنین اندیس می دین یا نه؟
موفق باشید

سلام
توی بانک که چک می کنم مقدار Array ذخیره شده

yaqubian
پنج شنبه 20 فروردین 1388, 12:53 عصر
دوست عزیز
متوجه شدم که array چاپ می کنه. درست هم هست ولی اگه بهش اندیس بدید باید مقدار مورد نظر رو بهتون برگرودنه!
موفق باشید

rash44
پنج شنبه 20 فروردین 1388, 14:10 عصر
دوست عزیز
متوجه شدم که array چاپ می کنه. درست هم هست ولی اگه بهش اندیس بدید باید مقدار مورد نظر رو بهتون برگرودنه!
موفق باشید

ببینید اگر کاربر عدد 5 رو وارد کنه توی کل چک باکس ها Array قرار میگیره
من درست متوجه منظورتون نشدم

امیـرحسین
پنج شنبه 20 فروردین 1388, 15:31 عصر
این مقدار (آرایه) رو توسط تابع print_r چاپ کنید ببینید ساختار آرایه به چه شکله.

echo print_r($array);

rash44
پنج شنبه 20 فروردین 1388, 15:47 عصر
این مقدار (آرایه) رو توسط تابع print_r چاپ کنید ببینید ساختار آرایه به چه شکله.

echo print_r($array);

hajhasan[]1

امیـرحسین
پنج شنبه 20 فروردین 1388, 17:16 عصر
hajhasan[]1
این یعنی چی؟ خروجی print_r هست؟ نکنه شما از آژاکس استفاده می کنید؟

rash44
پنج شنبه 20 فروردین 1388, 18:38 عصر
این یعنی چی؟ خروجی print_r هست؟ نکنه شما از آژاکس استفاده می کنید؟

سلام
نه از آژاکس هم استفاده نمی کنم
خروجی که به من داد این بود

rash44
جمعه 21 فروردین 1388, 09:27 صبح
سلام
در فایل رجیستر فرم ایت کد رو قراردادم :


if(isset($_POST['hajali'])) {
$hajali='حاج علی'; }
if(isset($_POST['hajhasan'])) {
$hajhasan='حاج حسن'; }
if(isset($_POST['order'])) {
$order='مشتری'; }
@ $dalil='$hajali'.'-'.'$hajhasan'.'-'.'$order';
// ***


متغیر $dalil رو توی بانک ثبت کردم

اول عدد 5 رو به برنامم دادم تا بتونم 5 ورودی رو با هم ثبت کنم
خروجی رو که به من توی گزارش داد اینه :

این لینک رو ببینید
http://alborzdarab.ir/img/dd.JPG

rash44
سه شنبه 25 فروردین 1388, 11:00 صبح
وقتی که از این کد هم استفده میکنم :


if(isset($_POST['hajali'])) {
$hajali='حاج علی'; }
if(isset($_POST['hajhasan'])) {
$hajhasan='حاج حسن'; }
if(isset($_POST['order'])) {
$order='مشتری'; }
@ $dalil=$hajali.'-'.$hajhasan.'-'.$order;


چیزی که توی بانک ثبت میشه اینه ::
ؼ/td>

امیـرحسین
چهارشنبه 26 فروردین 1388, 00:06 صبح
این کد برای من کار می کنه. کد رو به عنوان یه فایل php اجرا کنید و خروجی رو ببینید:


if( isset($_POST['submit']) && $_POST['submit'] == "Submit" )
{
$hajhasan = isset($_POST['hajhasan']) ? $_POST['hajhasan'] : array();
$hajali = isset($_POST['hajali']) ? $_POST['hajali'] : array();
$order = isset($_POST['order']) ? $_POST['order'] : array();

echo "<b>حاج حسن</b>: " . count($hajhasan) . "<br />";
echo "<b>حاج علي</b>: " . count($hajali) . "<br />";
echo "<b>سفارش</b>: " . count($order) . "<br />";

echo "<hr />";

echo "<pre>"; print_r($_POST); echo "</pre>";

return;
}

$content = '';
$count = isset($_GET['number']) ? $_GET['number'] : 5;
for($i=1; $i<=$count ; $i++)
{
$content .= '
<tr>
<td><input type="checkbox" name="hajhasan[]" value="حاج حسن" /></td>
<td><input type="checkbox" name="hajali[]" value="حاج علي" /></td>
<td><input type="checkbox" name="order[]" value="سفارش" /></td>
<td><input type="text" name="number[]" value="numbers" /></td>
<td><input type="text" name="pors[]" value="ports" /></td>
<td><input type="text" name="sum[]" value="sum" /></td>
<td><input type="text" name="fi[]" value="fee" /></td>
<td><input type="text" name="meghdar[]" value="val" /></td>
<td><input type="text" name="name[]" value="name" /></td>
</tr>';
}

echo '
<form method="POST">
<table border="0" width="100%" cellpadding="3" cellspacing="2">
' .$content. '
</table>
<input type="submit" name="submit" value="Submit" />
</from>';