PDA

View Full Version : سوال: مشکل با ajax و php



ablofazlkianianboohi
چهارشنبه 20 دی 1391, 19:21 عصر
سلام دوستان
وقتتون به خیر

بنده یک مشکل با ajax و php دارم.
کلیت مشکل من با پروژه به شرح زیر است:
من درون دیتابیس یک table دارم که داخل آن یکسری فیلد مربوط به مشخصات کتاب وجود دارد. مثل نام کتاب،نام نویسنده،انتشارات،شابک و غیره. حالا تو صفحه index.php یک textbox و یک button وجود داره. کاربر داخل textbox نام کتابی رو که می خواد از دیتابیس حذف بشود را می نویسه و روی دکمه کلیک می کنه. حالا اطلاعات کتاب وارد شده در صفحه send.php چک می شود و به صورت ajax در همون فایل index.php نمایش داده میشه. یعنی نام کتاب و فیلدهای دیگه. حالا من تو فایل send.php یک دکمه هم برای تایید حذف قرار دادم که کاربر وقتی روی اون کلیک کرد کتاب حذف بشه.
برای ajax کردن و نمایش هیچ مشکلی نیست؛ فقط مشکل اینجاست که من درون فایل send.php نوشتن وقتی روی دکمه کلیک شد یکسری دستورات php اجرا بشه که این دستورات اجرا نمیشه. مشکلم اینه.

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

فایل index.php


<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.min.js"/></script>

<script type="text/javascript">
$(document).ready(function(){
$("button#send").click(
function() {
$("div#result").load('send.php');
}
);
});
</script>

</head>
<body>
<form name="test" id="test" method="post" action="">
<button id="send" type="button" >Send</button>
</form>
<div id="result"></div>
</body>
</html>



فایل send.php


<?php
if (isset ($_POST['ersal']))
{
header("Location: http://www.yahoo.com");
}
?>
<form action="" method="post" name="test2" id="test2">
<input type="submit" name="ersal" id="ersal" value="Send2" />
</form>

siavashsay
چهارشنبه 20 دی 1391, 20:08 عصر
یعنی بعد از زدن دکمه ارسال هیچ چیزی اجرا نمیشه ؟!

mohsen_31369
چهارشنبه 20 دی 1391, 21:12 عصر
اگه درست منظورت رو فهمیدم فکر کنم مشکلت اینجاس :
شما در فایل send در تگ فرم مقدار action رو خالی گذاشتی یعنی اطلاعات رو به صفحه ی جاری بفرست.
وقتی صفحه ی send رو توی صفحه ی index لود می کنی صفحه ی جاریت صفحه ی index است.
پس، پس از زدن دکمه ی ارسال اطلاعات به صفحه index ارسال می گردد نه صفحه ی send.
حالا اگه میخوای اطلاعات به صفحه ی send ارسال شود مقدار action رو برابر send.php قرار بده
اگه منظورت چیزه دیگه ای بود یه کم بیشتر توضیح بده

ablofazlkianianboohi
پنج شنبه 21 دی 1391, 08:26 صبح
دوست عزیز : mohsen_31369
خیلی خیلی ممنون از راهنماییت.
مشکل همین action بود. action را برابر send.php قرار دادم درست شد.


بازم ممنون

ablofazlkianianboohi
جمعه 22 دی 1391, 18:59 عصر
دوست عزیز
باز برام یک مشکلی تو همین مسئله پیش اومده.
action رو که برابر send.php قرار می دم برای location به درستی کار می کنم. حالا من یک دستور کوئری می زارم به جای دستور location. وقتی دکمه رو میزنم صفحه send.php نمایش داده میشه و دکمه Send2 می آد و باید مجدد بزنی تا دستوراتش اجرا بشه.
نمیشه کاری کرد صفحه نمایش داده نشه و دستوراتش اجرا بشه؟