PDA

نسخه کامل مشاهده نسخه کامل : مشکل در ارسال مقادیر دکمه های رادیو به PHP



powerslave
21-07-2009, 17:49
من یه فرم دارم که باید نتایج یک جستجو را نشان بده. توی یه جدول. و برای اون جدول یه Repeat Region ایجاد کردم. تا اینجا همه چی درسته. اما تو هر سطر جدول یک Radio Button هست که تکرار میشه. میخواستم که کاربر با انتخاب اون رادیو باتن و کلیک کردن روی دکمۀ تائید، اون رکورد رو انتخاب کنه. همۀ اینها انجام میشه اما همیشه فقط رکورد آخر از نتایج جستجو به Mysql فرستاده میشه. یعنی هر سطری رو که انتخاب میکنی سطر اخر به جای اون فرستاده میشه. نظرتون چیه؟ ASP.NET همچین چیزهایی رو خودش داره که کار هم میکنه اما اینجا مشکل داریم!

neopersia
21-07-2009, 20:31
کدتون رو بزارید همینطوری که نمیشه چیزی گفت!

mamadfelfel1988
22-07-2009, 02:29
شما به چه روشي نوشتي asp.net يا php يا همه اينها وظيفه fetch دارند پس اين سوال اخر شما مربوط به دستوراتsql مي باشد

neopersia
22-07-2009, 10:13
نه عزیز اشکال sql نیست احتمالاً تو نامگذازی دکمه رادیوها و یا گرفتن وقدارش با php اشکال دارن!

MAXXX
22-07-2009, 17:46
همونطور که دوستان گفتن مشکل از نام رادیو ها باید باشه وقتی شما بهشون name ندی همشون با یدونه اسم repeat میشن وهمیشه آخرین رکورد انتخاب میشه
شما باید name رادیو باتن ها رو مشخص کنی طوری که تویه هر سطر با سطر بعدی تفاوت داشته باشه میتونی نامشون رو برابر با id همون رکورد بزاری

mamadfelfel1988
22-07-2009, 23:58
فكر كنم ما داريم بحث الكي ميكنيم هيچ كدي نيست اينجا كه روش بشه نظر داد

powerslave
23-07-2009, 18:56
همونطور که دوستان گفتن مشکل از نام رادیو ها باید باشه وقتی شما بهشون name ندی همشون با یدونه اسم repeat میشن وهمیشه آخرین رکورد انتخاب میشه
شما باید name رادیو باتن ها رو مشخص کنی طوری که تویه هر سطر با سطر بعدی تفاوت داشته باشه میتونی نامشون رو برابر با id همون رکورد بزاری

آقا احتمالاً حدس شما درست هست. ولی من هیچ راهی برای چک کردنش ندارم. یعنی مثلاً اگر من بخوام که نتایج جستجو درون Text Box نمایش داده بشه، یک Text Box برای هر فیلد میذارم توی خانۀ مربوطه و بعد تکرار میشه. حالا آیا اینجا هم Text Box با یک نام تکرار میشه؟ . فکر میکنم که دومی میشه Text Box2 و ...
حالا چرا همین اتفاق برای Radio Button نمیفته؟ یعنی من که نمیدونم چند تا رکورد در نتیجۀ جستجو ایجاد میشه. چطوری میتونم اونها رو نامگذاری مجزا کنم؟ من چیزی در مورد اینکه ID رکورد چیه نمیدونم. من تازه کارم. کدم رو میزارم.

powerslave
23-07-2009, 19:03
این کد Record Set هست:




<?php
$colname_Recordset1 = "-1";
if (isset($_POST['Gocity'])) {
$colname_Recordset1 = (get_magic_quotes_gpc()) ? $_POST['Gocity'] : addslashes($_POST['Gocity']);
}
mysql_select_db($database_Public, $Public);
$query_Recordset1 = sprintf("SELECT `From`, `To`, Godate, GoTime, FlightClass, FlightNo, PricePerAdult, PricePerChild, PricePerInfant FROM flightslist WHERE `From` = '%s'", $colname_Recordset1);
$Recordset1 = mysql_query($query_Recordset1, $Public) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
$queryString_Recordset1 = "";
if (!empty($_SERVER['QUERY_STRING'])) {
$params = explode("&", $_SERVER['QUERY_STRING']);
$newParams = array();
foreach ($params as $param) {
if (stristr($param, "pageNum_Recordset1") == false &&
stristr($param, "totalRows_Recordset1") == false) {
array_push($newParams, $param);
}
}
if (count($newParams) != 0) {
$queryString_Recordset1 = "&" . htmlentities(implode("&", $newParams));
}
}
$queryString_Recordset1 = sprintf("&totalRows_Recordset1=%d%s", $totalRows_Recordset1, $queryString_Recordset1);
?>

powerslave
23-07-2009, 19:05
این کد Repeat Region هست:



<?php do { ?>
<tr>
<td width="30" align="center"><label>
<input <?php if (!(strcmp($row_Recordset1['Chose'],"1"))) {echo "checked=\"checked\"";} ?> name="Chose" type="radio" value="1" />
<iframe src="[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]" style="display:none"></iframe>
</label></td>
<td width="60" align="center"><iframe src="[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]" style="display:none"></iframe>
<?php echo $row_Recordset1['PricePerInfant']; ?></td>
<td width="70" align="center"><iframe src="[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]" style="display:none"></iframe>
<?php echo $row_Recordset1['PricePerChild']; ?></td>
<td width="70" align="center"><iframe src="[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]" style="display:none"></iframe>
<?php echo $row_Recordset1['PricePerAdult']; ?></td>
<td width="65" align="center"><iframe src="[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]" style="display:none"></iframe>
<?php echo $row_Recordset1['FlightNo']; ?></td>
<td width="65" align="center"><label>
<iframe src="[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]" style="display:none"></iframe>
<?php echo $row_Recordset1['FlightClass']; ?></label></td>
<td width="65" align="center"><label>
<iframe src="[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]" style="display:none"></iframe>
<?php echo $row_Recordset1['GoTime']; ?></label></td>
<td width="80" align="center"><label>
<iframe src="[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]" style="display:none"></iframe>
<?php echo $row_Recordset1['Godate']; ?></label></td>
<td width="60" align="center"><label>
<iframe src="[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]" style="display:none"></iframe>
<?php echo $row_Recordset1['To']; ?></label></td>
<td width="60" align="center"><label>
<iframe src="[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]" style="display:none"></iframe>
<?php echo $row_Recordset1['From']; ?></label></td>
</tr>
<?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>

powerslave
23-07-2009, 19:07
این هم کدی هست که برای Radio Button استفاده کردم:


<input <?php if (!(strcmp($row_Recordset1['Chose'],"1"))) {echo "checked=\"checked\"";} ?> name="Chose" type="radio" value="1" />

powerslave
23-07-2009, 19:08
حالا چی؟ یک نظری بدین لطفاً

neopersia
23-07-2009, 19:56
لطفاً همه مطالب رو توی یک پست بزارید!
برای نوشتن کدهای php هم میتونید از تگ [php] و یا [code] استفاده کنید تا قابل خوندن باشه و بعضاً به وسیله وی بولتین تغییر داده نشه!


--------------------

کدی که نوشتید بیخودی پیچیده شده و میتونه خیلی بهینه تر از این باشه. من زیاد روش دقیق نشدم اما فکر میکنم بدونم مشکل شما از کجاست.
شما برای همه رادیوها مقدار 1 گذاشتید؟! خوب اینجوری هر دفعه همین مقدار 1 براش ارسال میشه دیگه!
برای اینکه بتونید مشخص کنید کدوم سطر انتخاب شده باید برای هر رادیو یک مقدار منحصر به فرد قرار بدید. مثلاً id اون سطر در دیتابیس! برای اینکه فقط یکی از رادیوها انتخاب بشه لازمه که name همه اونها یکی باشه پس تنها چیزی که از روش میشه فهمید کدوم گزینه انتخاب شده مقدار اون هست (value)

MAXXX
24-07-2009, 06:36
البته کد رو ایشون ننوشته , دریم ویور تولید کرده برایه همین خیلی زیاده
شما باید اول تویه جدولت در دیتابیس یدونه فیلد میزاری به اسمه id (شاید قبلا باشه )
این فیلد رو auto increment و premier بزار به وسیله همین فیلد میتونی سطر هایه جدول رو از هم تفکیک کرد و به هرکدومشون دسترسی پیدا کرد
حالا رادیو باتن رو اینطوری بزار

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

powerslave
24-07-2009, 17:52
ممنونم بچه ها