PDA

View Full Version : راهنمایی در مورد ارسال و ثبت اطلاعات در یک صفحه



amir6268
سه شنبه 07 مهر 1394, 12:19 عصر
سلام
فرض کنید میخواهید برای سایتتون یک ارسال کامنت درست کنید.
یک صفحه به اسم index.php که فرم ها داخلش قرار میگیره و یک صفحه هم send.php که اطلاعات رو دریافت و ثبت میکنه.
حالا اگه بخواهیم دریافت و ثبت اطلاعات رو در همون صفحه index.php انجام بدیم باید از function استفاده کنیم؟
با مثال و کدهاش توضیح میدید؟

opluse
سه شنبه 07 مهر 1394, 13:31 عصر
دوست عزیز Action فرمتون رو روی index.php بزارید و اطلاعات و کدهایی ک در send.php هست رو به بالای صفحه index.php اضافه کنید .

amir6268
سه شنبه 07 مهر 1394, 14:03 عصر
دوست عزیز Action فرمتون رو روی index.php بزارید و اطلاعات و کدهایی ک در send.php هست رو به بالای صفحه index.php اضافه کنید .

نمیشه ... باید داخل function قرار بدیم و بعد از ارسال اطلاعات اسمی که برای function تعیین کردیم را صدا بزنیم که اطلاعات داخل اون خونده بشه ...
ولی نحوه نوشتنش را نمیدونم ...
با اونکاری که شما میگی همون اول که صفحه رو باز میکنیم شروع میکنه به دریافت اطلاعات ... که خوب با خالی بودن اطلاعات مواجه میشه و خطا میده ...

فرض کن من بخوام 5 تا فرم جداگانه در یک صفحه ارسال و در همون صفحه اطلاعاتشو دریافت و ثبت کنم. از کجا میخواد بفهمه تو کدوم دیتابیس باید اطلاعات رو ثبت کنه؟ یا کدوم دستورات mysql رو باید اجرا کنه؟

hamedarian2009
سه شنبه 07 مهر 1394, 17:11 عصر
نیازی به نوشتن تابع نیست کافیه بالای صفحه چک کنید اطلاعاتی از فرم اومده یا خیر مثلا به این صورت :


<?php
if (isset($_POST['sub'])) {
//دریافت اطلاعات ارسالی از فرم
echo $_POST['test'];
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<form action="<?= $_SERVER['PHP_SELF'] ?>" method="post">
<input type="text" name="test"> <br>
<input type="submit" value="GO" name="sub">
</form>
</body>
</html>

kabootar_y
چهارشنبه 08 مهر 1394, 10:38 صبح
من کد دوستمون hamedarian2009 (http://barnamenevis.org/member.php?180731-hamedarian2009) رو ویرایش کردم و امیدوارم بدردتون بخوره البته این مثاله و باید بیشتر روش کار بشه






<?php
if (isset($_POST['submit']))
{
require('dbconnection.php');
$name= mysql_real_escape_string($_POST['name']);
$email= mysql_real_escape_string($_POST['email']);
$comment= mysql_real_escape_string($_POST['comment']);
$sql = "INSERT INTO comments (id, name, email, comment) VALUES (NULL, '$name', '$email', '$comment')";
mysql_query($sql);
if(mysql_affected_rows())
{
echo 'نظر با موفقیت ثبت شد!';
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<form action="index.php" method="post">
<input type="text" name="name" />
<input type="text" name="email" />
<textarea name="comment"></textarea>
<input type="submit" value="GO" name="submit">
</form>
</body>
</html>

amir6268
چهارشنبه 08 مهر 1394, 11:25 صبح
حالا میتونیم فقط دستور echo رو بعد از ارسال اطلاعات به صورت ajax لود کنیم؟ یعنی دیگه صفحه لود نشه.
قبلا امتحان کردم ولی کل صفحه مجدد با دستور ajax لود میشه. ولی میخوام فقط دستور echo رو چاپ کنه...

hamedarian2009
چهارشنبه 08 مهر 1394, 13:41 عصر
حالا میتونیم فقط دستور echo رو بعد از ارسال اطلاعات به صورت ajax لود کنیم؟ یعنی دیگه صفحه لود نشه.
قبلا امتحان کردم ولی کل صفحه مجدد با دستور ajax لود میشه. ولی میخوام فقط دستور echo رو چاپ کنه...
خب با ای جکس باید دیتا رو از یک صفحه دیگه بگیرین

kabootar_y
پنج شنبه 09 مهر 1394, 12:11 عصر
حالا میتونیم فقط دستور echo رو بعد از ارسال اطلاعات به صورت ajax لود کنیم؟ یعنی دیگه صفحه لود نشه.
قبلا امتحان کردم ولی کل صفحه مجدد با دستور ajax لود میشه. ولی میخوام فقط دستور echo رو چاپ کنه...

این طور که متوجه شدم شما میخواهید هنگامی که کامنت ارسال میشود اصلا صفحه رفرش نشه

شما باید اطلاعات فرم رو از طریق ajax ارسال کنید و نتیجه رو هم از طریق همون ای جکس دریافت کنید و نمایش بدین

amir6268
پنج شنبه 09 مهر 1394, 12:51 عصر
ممنون ولی مثال با کد میزنید؟
ajax میاد اطلاعات صفحه دیگه رو بدون رفرش میگیره و نشون میده درسته؟
حالا من میخوام اطلاعات همون صفحه ای که داخلش هستیم رو بگیریم و نمایش بده...
یعنی یه فرم داخل صفحه index.php قرار داره بعد دریافت و ثبت اطلاعات هم داخل همین صفحه index.php هست. حالا با ajax نتیجه ثبت اطلاعات همین صفحه رو بگیریم و نمایش بدیم.
اینکار را انجام دادم بدون رفرش صفحه نتیجه هم نمایش میده ولی کل کدهای صفحه رو یکبار دیگه لود میکنه... یعنی دو بار صفحه index.php لود میشه ...
حالا میخوام فقط دستور echo رو که نتیجه ثبت اطلاعات هست را چاپ کنه.

امیدورام منظورم را متوجه شده باشید ...

hamedarian2009
پنج شنبه 09 مهر 1394, 17:00 عصر
ممنون ولی مثال با کد میزنید؟
ajax میاد اطلاعات صفحه دیگه رو بدون رفرش میگیره و نشون میده درسته؟
حالا من میخوام اطلاعات همون صفحه ای که داخلش هستیم رو بگیریم و نمایش بده...
یعنی یه فرم داخل صفحه index.php قرار داره بعد دریافت و ثبت اطلاعات هم داخل همین صفحه index.php هست. حالا با ajax نتیجه ثبت اطلاعات همین صفحه رو بگیریم و نمایش بدیم.
اینکار را انجام دادم بدون رفرش صفحه نتیجه هم نمایش میده ولی کل کدهای صفحه رو یکبار دیگه لود میکنه... یعنی دو بار صفحه index.php لود میشه ...
حالا میخوام فقط دستور echo رو که نتیجه ثبت اطلاعات هست را چاپ کنه.

امیدورام منظورم را متوجه شده باشید ...

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

kabootar_y
جمعه 10 مهر 1394, 00:23 صبح
بله دوستمون hamedarian2009 (http://barnamenevis.org/member.php?180731-hamedarian2009) درست فرمودند :تشویق:

شما اگه می خواهید اطلاعات فرمتون رو بدون رفرش ثبت کنید حتما باید یه فایل دیگه برای پردازش داشته باشید مثلا فایلی به نام submit.php که اطلاعات رو از طریق ajax به اون فایل ارسال و نتیجه رو دریافت کنید و نمایش بدین