PDA

View Full Version : نظر سنجی چند صفحه ای



hamishe bahar
چهارشنبه 24 مرداد 1386, 12:09 عصر
من میخواهم یک فرم نظر سنجی با PHP وMYSQL بسازم که دارای این خصوصیات باشد

در چند صفحه بستگی به تعداد سوالات
درآخرین صفحه یک دکمه ثبت باشد که پاسخ کاربر در همه صفحات را ذخیره کندمن توانستم در چند صفحه نمایش دهم اما در آخر فقط اطلاعات آخرین صفحه در پایگاه ثبت می شود
لطفا مرا راهنمایی کنید:افسرده:

cybercoder
چهارشنبه 24 مرداد 1386, 15:23 عصر
در وب POLL+PHP+SOURCE رو جستجو کن

cybercoder
چهارشنبه 24 مرداد 1386, 15:43 عصر
اینم من برات Search کردم
http://www.codewalkers.com/c/a/Database-Articles/Adding-a-Poll-to-Your-Web-Site/

hamishe bahar
شنبه 27 مرداد 1386, 08:29 صبح
خیلی ممنون تشکر لینکی که گذاشته اید کاملا توضیح داده ولی مشکل من با چند صفحه ای بودن است یعنی وقتی کاربر به یک صفحه پاسخ می دهد وبه صفحه بعدی می رود پاسخ هایی را که در صفحه قبل داده را چگونه باید نگه دارم تا وقتی در آخر دکمه ثبت را می زند همه پاسخ های او در چند صفحه در پایگاه ثبت شود

cybercoder
شنبه 27 مرداد 1386, 12:28 عصر
به نظر من معقول تر اینه که با استفاده از JavaScript برای نظر سنجی تون Tab بسازید.

اینم یه نمونش
http://www.barelyfitz.com/projects/tabber/
همون جا دانلود هم داره که خودش یه Tab
اگه دنبال خوشگل تر می گردی سرچ بنما یا css ش رو تغییر.

موفق باشی

neopersia
یک شنبه 28 مرداد 1386, 04:38 صبح
شما به یه فرم چند صفحه ای اجتیاج دارید :

http://www.neopersia.org/php/multi_page_form.php

hamishe bahar
یک شنبه 28 مرداد 1386, 13:26 عصر
ممنون از جواب شما من ترجیح میدم از فرم چند صفحه ای استفاده کنم

peyman1987
یک شنبه 28 مرداد 1386, 17:42 عصر
شما بهتره از ترکیب کوکی و سشن ( ترجیحا سشن ) یه فرم چند صفحه‌ای رو خودتون طراحی کنین تا توی کارهای بعدی مثل الان با مشکل برخورد نکنین. به نظر من هر چقدر کمتر از کدهای آماده استفاده بشه بهتره.

hamishe bahar
سه شنبه 30 مرداد 1386, 08:27 صبح
من هم چنین کاری کردم یعنی از سشن ها استفاده کردم ولی وقتی سشنی را در صفحه اول می سازم وبهش مقدار می دم فقط مقدار اون سشن در صفحه دوم قابل دسترسی است ودر صفحه سوم مقدارش از بین میره می شه بگین چرا؟

peyman1987
سه شنبه 30 مرداد 1386, 12:03 عصر
اگر درست کار کرده باشین این اتفاق نمیافته. سشنها معمولا تا زمانی که صفحه مرورگر بسته نشده و یا به صفحه‌ای روی یه سرور دیگه منتقل نشده مقادیرشون رو حفظ میکنن. اگه میشه کدتون رو بزارین تا بهتون کمک کنیم.

cybercoder
سه شنبه 30 مرداد 1386, 12:47 عصر
خیلی دارید مسئله رو پیچیده می کنیدا !!!

farazjoonam
پنج شنبه 01 شهریور 1386, 10:56 صبح
میتونی یک فرم بسازی مثلا یک Textbox به نام question داری ، یک دکمه میذاری که برای مثال بفرسته به صفحه check.php . بعد تو Action فرم مینویسی Check.php?q=1&javab=$question با رفتن به صفحه بعد میتونی از $javab آستفاده کنی . که همون Question رو نشون میده و در صفحه بعد ckeck.php?q=2$ja=$javab&ja2=$question همینجوری باید ادامه بدی . فمیدی؟ D:

musiox
پنج شنبه 01 شهریور 1386, 17:46 عصر
یه کم دقت کنی حل می شه. کدات مشکل داره .

hamishe bahar
شنبه 03 شهریور 1386, 10:07 صبح
این هم کدی است که نوشته ام:






<?php
if(isset($_POST['continue']))
{
mysql_connect("localhost","root","") or die("can not connect");
mysql_select_db("nazar") or die("can not select db");
$start=$_POST['start'];
$query="select * from question limit $start,5";
$result=mysql_query($query) or die("not question".mysql_error());
$numquestion=mysql_num_rows($result);
for($i=0;$i<$numquestion;$i++)
{
$numanswer=mysql_result($result,$i,3);
$id=mysql_result($result,$i,0);
$type=mysql_result($result,$i,2);
if($type=='Radio Button')
{
$answer=$_POST[$id];
$_SESSION[$id]=$answer;
print("$_SESSION[$id]<br>");
}
else if($type=='Check Box')
{
for($j=0;$j<$numanswer;$j++)
{
$answer=$_POST[$id.$j];
$_SESSION[$id.$j]=$answer;
print($_SESSION[$id.$j]);
print("<br>");
}
}
}
}

print("<table align='center' width='90%' cellspacing='0' cellpadding='4'>");
mysql_connect("localhost","root","") or die("can not connect");
mysql_select_db("nazar") or die("can not select db");
$query="select * from question ";
$result=mysql_query($query);
$numrow=mysql_num_rows($result);
if(!isset($_POST['start']))
$start=0;
else
$start=$_POST['start']+5;
print("session:".$_SESSION[10]);
if($numrow<$start+5)
{
print("<form method='post' action='reganswer.php'>");
}
else
{
print("<form method='post' action='shows.php'>");
}

$rowpage=5;
$query1="select * from question limit $start,$rowpage";
$result1=mysql_query($query1) or die("not question".mysql_error());
$numquestion=mysql_num_rows($result1);
for($i=0;$i<$numquestion;$i++)
{
$Qbody=mysql_result($result1,$i,1);
$numask=mysql_result($result1,$i,3);
$id=mysql_result($result1,$i,0);
$type=mysql_result($result1,$i,2);
print("<tr bgcolor=#EDF6F0><td align='right'>$Qbody</td><td valign='top' align='right' width='5%' height=10><img src='img/b_edit.png'></td></tr>");
$query2="select * from ask where numq=$id";
$result2=mysql_query($query2) or die("not ask");
$numask=mysql_num_rows($result2);
for($j=0;$j<$numask;$j++)
{
$value=mysql_result($result2,$j,1);
print("<tr><td align='right'>");
if($type=='Radio Button')
{
print("<label dir='rtl'><input type='radio' name=$id value='$value'>$value</label>");
}
else if($type=='Check Box')
{
print("$id"."$j");
print("<label dir='rtl'><input type='checkbox' name=".$id.$j." value='$value'>$value</label>");
}
print("</td></tr>");
}
}
print("<tr><td colspan='2'><hr style='border-style:dotted' color='#003399' size='2'></td></tr>");
if($start>0)
{
print("<tr><td><input type='button' name='back' value='بازگشت' onClick='b()'></td>");
}
if($numrow>$start+5)
{
print("<td align='right'><input type='submit' name='continue' value='ادامه'></td>");
}
else
print("<tr><td><input type='submit' name='reg' value='ثبت'></td></tr>");
print("</tr>");

print("</table>");
print("<input type='hidden' name='start' value='$start'");
print("</form>");
print("</form>");

musiox
شنبه 03 شهریور 1386, 13:35 عصر
session_start رو جا انداختی . خب بایدم کار نکنه.

peyman1987
شنبه 03 شهریور 1386, 16:41 عصر
اولین خط بعد از <?PHP بنویس session_start();

hamishe bahar
یک شنبه 04 شهریور 1386, 08:11 صبح
نه کدم را خلاصه کردم بخاطر همین هم جا افتاده
خودم فهمیدم مشکلم چیه اسم سشن ها یعنی $id عدد است بخاطر همین مقدارش حفظ نمی شه:متفکر:
من به اول اسم سشن ها یه حرف مثلا s را اضافه کردم مشکل سشن حل شد:چشمک: