• 1 رای - 4 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل این کد چیه؟
#1
سلامتوی برنامم تکه کد زیر رو دارم

کد:
کد:
<?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 اونها بکار رفته
کسی راه حل مشکل رو میدونه ؟
  پاسخ
تشکر شده توسط :
#2
شما باید براکت ها رو از جلوی نام المنت های فرم بر دارین وگرنه آرایه می فرسته!
منظورم اینه
کد:
<td align=\"center\" bgcolor=\"#F9F9F9\"><input type=\"checkbox\" name=\"hajhasan\" value=\"حاج حسن\" class=\"in\"></td>
همچنین حرف فاصله تو مقدار فیلد مشکل ایجاد میکنه :حاج حسن
  پاسخ
تشکر شده توسط :
#3
سلام

کدی که گذاشتم بع تعداد متغیر $Num اجرا میشه
کلیه فیلدها توی ایم کد آرایه هستند
مثلا کاربر با وارد کردن عدد 10 می تونه همزمان 10 تا اطلاعات را وارد بانک کنه
لطقا راهنمائیم کنید
  پاسخ
تشکر شده توسط :
#4
كدتون رو كاملتر بزاريد
اين فقط قسمت view هست قسمت منطق رو هم بزاريد
  پاسخ
تشکر شده توسط :
#5
(۱۳۸۸ فروردین ۲۰, ۰۲:۴۰ ب.ظ)admin نوشته: كدتون رو كاملتر بزاريد
اين فقط قسمت view هست قسمت منطق رو هم بزاريد

کد:
<td>
                <table border="0" width="100%" cellspacing="3" cellpadding="2">
                    <tr>
                        <td bgcolor="#ECE9D8" align="center" width="229"><b>
                        <font face="Verdana" color="#003366" style="font-size: 11pt">
                        ملاحظات</font></b></td>
                        <td bgcolor="#ECE9D8" align="center" width="129"><b>
                        <font face="Verdana" style="font-size: 11pt" color="#003366">
                        جمع کل</font></b></td>
                        <td bgcolor="#ECE9D8" align="center" width="135"><b>
                        <font face="Verdana" color="#003366" style="font-size: 11pt">
                        مبلغ هر پورس</font></b></td>
                        <td bgcolor="#ECE9D8" align="center" width="64"><b>
                        <font face="Verdana" color="#003366" style="font-size: 11pt">
                        تعداد پورس</font></b></td>
                        <td bgcolor="#ECE9D8" align="center" width="125"><b>
                        <font face="Verdana" color="#003366" style="font-size: 11pt">
                        نام غذا</font></b></td>
                        <td bgcolor="#ECE9D8" align="center" width="47"><b>
                        <font face="Verdana" color="#003366" style="font-size: 11pt">
                        ردیف</font></b></td>
                    </tr>
                </table>
                </td>
            </tr>
            <tr>
                <td>
                <?php
$Num = $_POST['Number'];
for ($counter=0; $counter < $Num; $counter++)
{
$count = $counter+1;
$response ="<table border=\"0\" width=\"100%\" cellpadding=\"3\" cellspacing=\"2\"><tr>
        <td align=\"center\" bgcolor=\"#F9F9F9\" width=\"229\"><input type=\"text\" name= comment[] size=\"40\" class=\"in\" dir=\"rtl\"></td>
        <td align=\"right\" bgcolor=\"#F9F9F9\" width=\"129\"><input type=\"text\" name= sum[] size=\"21\" class=\"in\" dir=\"ltr\" onkeyup=\"this.value=num2money(this.value);\"></td>
        <td align=\"center\" bgcolor=\"#F9F9F9\" width=\"135\"><input type=\"text\" name= price[] size=\"23\" class=\"in\" onkeyup=\"this.value=num2money(this.value);\"></td>
        <td align=\"right\" bgcolor=\"#F9F9F9\" width=\"64\"><input type=\"text\" name= count[] size=\"8\" class=\"in\"></td>
  <td align=\"center\"><font size=\"2\"><select size=\"1\" name=\"footname[]\" dir=\"rtl\" style=\"font-family: Tahoma; color: #333333; font-size: 9pt\" class=\"btn\">
           <option selected>نام غذا
           </option>";
              while ($line = db_fetch_assoc($result3))
                     {
                    
     $response .= "<option value=".$line['name'].">".$line['name']."</option>";
     }
      $response .="</select></font></td>
        <td align=\"center\" bgcolor=\"#F9F9F9\" width=\"47\"><font face=\"Tahoma\" size=\"2\" color=\"#FF6600\"><b>$count</b></font></td>
    </tr></table>";
echo ("$response");  
}
?>                </td>
  پاسخ
تشکر شده توسط :
#6
کد:
$response .
رو بردار و مستقیم echo کن
یعنی:
کد:
while ($line = db_fetch_assoc($result3))
                     {
                    
echo  "<option value=".$line['name'].">".$line['name']."</option>";
     }
echo "</select></font></td>
وقتی شما با .response $ کار کنی در واقع داری یه رشته می سازی و option منوی شما یک مقداری میشه.
  پاسخ
تشکر شده توسط :
#7
(۱۳۸۸ فروردین ۲۰, ۰۳:۴۴ ب.ظ)scorpion نوشته:
کد:
$response .
رو بردار و مستقیم echo کن
یعنی:
کد:
while ($line = db_fetch_assoc($result3))
                     {
                    
echo  "<option value=".$line['name'].">".$line['name']."</option>";
     }
echo "</select></font></td>
وقتی شما با .response $ کار کنی در واقع داری یه رشته می سازی و option منوی شما یک مقداری میشه.

سلام
با این تغییر هم درست نشد
  پاسخ
تشکر شده توسط :
#8
من كه فعلا كامپيوتر جلو دست ندارم
يكي از بچه ها كه امكاناتش رو داره بتونه تست كنه خيلي خوب ميشه
  پاسخ
تشکر شده توسط :
#9
checkBox مقدار نداره. فقط true یا false بر می گردونه...
درواقع یا ست ( set ) می شه یا نمی شه
برای فهمیدمش هم می تونی از تابع isset استفاده کنی
  پاسخ
تشکر شده توسط :
#10
(۱۳۸۸ فروردین ۲۰, ۰۸:۲۶ ب.ظ)oia نوشته: checkBox مقدار نداره. فقط true یا false بر می گردونه...
درواقع یا ست ( set ) می شه یا نمی شه
برای فهمیدمش هم می تونی از تابع isset استفاده کنی


توی کد رجیستر فرم از این کد استفاده کردم ::
کد:
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
  پاسخ
تشکر شده توسط :


پرش به انجمن:


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