PDA

View Full Version : سوال: نگه داشتن نام جدول



!Truth
پنج شنبه 09 آبان 1392, 10:49 صبح
سلام .
من می خواهم پس از اینکه کاربر در صفحه اول نام جدول را انتخاب کرد؛ در صفحه بعدی با کلیک بر روی دکمه NEW عملیات درج رکورد بر جدول انتخاب شده صورت گیرد. اما مشکل اینجاست که پس از کلیک بر دکمه NEW در صفحه دوم؛ نام جدول نیز از بین
می رود.
من بسیار جستجو کرده ام و از Session و ثابت و var_dump نیز استفاده کرده ام. ولی در هر حال پس از submit شدن فرم
با کلیک بر دکمه NEW نام جدول مورد نظر از دست می رود.

بخش اصلی کد ها:
صفحه اول انتخاب جدول

<form action="change_products.php" method="post" name="select_table">
<select name="edit_products" >
<option <?php if($_POST['edit_products'] == "cabin") echo "selected='selected'"; ?> value="cabin">Cabin case</option>
<option <?php if($_POST['edit_products'] == "cabin_door") echo "selected='selected'"; ?> value="cabin_door">Cabin door</option>
</select>
<input type="submit" value="OK">
</form>


صفحه دوم؛ عملیات اضافه رکورد به جدول انتخابی


<?
include('functions.php'); //the database info
define('selected_table', $_POST['edit_products']);
?>

<form method="post">

<table>

<tr>
<td>Mark:</td>
<td><input type="text" name="mark" /></td>
</tr>


<tr>
<td><input type="submit" name="add" value="New" /></td>
</tr>
</table>




<?
if (isset($_POST['add']))
{
$mark=$_POST['mark'];
mysql_query("INSERT INTO ".selected_table." (mark) VALUES ('$mark')");
}
?>

</form>

AliRezaPro
پنج شنبه 09 آبان 1392, 11:35 صبح
این قسمت از کجا پست می شود ؟

if($_POST['edit_products'] == "cabin")

صفحه ی دوم php پارسر ها رو کامل قرار دهید مانند خط اول و ...
چون دوبار دارید پست میکنید در صفحات متفاوت برای همین اطلاعات پست شده های قبلی در دسترس نیست . از سشن استفاده کنید


<?php session_start(); ?>
<form method="post" name="select_table">
<select name="edit_products" >
<option value="cabin">Cabin case</option>
<option value="cabin_door">Cabin door</option>
</select>
<input type="submit" value="OK" name="save"/>
</form>

<?php

if(isset($_POST['save']))
{
$_SESSION['tblName']= $_POST['edit_products'];
}
//define('selected_table', $_POST['edit_products']);

?>

<form method="post">

<table>

<tr>
<td>Mark:</td>
<td><input type="text" name="mark" /></td>
</tr>


<tr>
<td><input type="submit" name="add" value="New" /></td>
</tr>
</table>




<?php
if (isset($_POST['add']))
{
$mark=$_POST['mark'];
echo "INSERT INTO {$_SESSION['tblName']} (mark) VALUES ('$mark')";
}
?>

</form>

!Truth
جمعه 10 آبان 1392, 08:22 صبح
سپاس گزارم دوست گرامی.
مشکل حل شد. البته برای اضافه کردن رکورد به جدول؛ خطی از کد که نوشته بودید کار نمی کرد.
اما چرا وقتی از

$_SESSION['tblName']

در صفحه دوم هم می خواهم استفاده کنم؛ محتوایش از دست می رود؟ و تنها در همان صفحه پایدار می ماند؟
مگر متغیرهای session نباید مقدارشان در همه ی صفحات قابل دسترسی باشند؟

هنگامی هم که انتخاب جدول و عملیات اضافه نمودن در یک صفحه انجام می شوند؛ پس از کلیک بر دکمه New ؛ گزینه انتخاب شده drop-down list به حالت ابتدایی خود باز می گردد که جالب نیست!
برای آن راهکاری به نظرتان می رسد؟

AliRezaPro
جمعه 10 آبان 1392, 09:25 صبح
در هر صفحه ایی که قرار است به سشن دسترسی داشته باشید باید این خط کد را بالای همه ی کد ها قرار دهید

<?php session_start(); ?>