PDA

View Full Version : سوال: چند سوال در رابطه با یک پروژه ی دانشگاهی با php



ablofazlkianianboohi
جمعه 15 دی 1391, 14:51 عصر
سلام دوستان
من یک پروژه برای دانشگاه دارم که باید با زبان php انجام بدم. حالا این مابین چندتا مشکل دارم. ممنون می شوم راهنمایی بفرمایید:

اول اینکه می خواستم بدونم چطور اطلاعات یک فرم را با PHP بخونم بدون اینکه فرم submit بشه؛ چون وقتی فرم submit میشه کل صفحه refresh میشه و این کار بنده رو خراب می کنه.

دوم اینکه من یک قسمت به نام حذف دارم. کاربر نام کتاب مورد نظرش برای حذف رو وارد می کنه. من می خوام ازش تاییده مثل yes OR no بگیرم. چطور این کار رو انجام بدم؟

حالا در طول انجام پروژه بازم مزاحمتون می شوم.



تشکر

tehro0n
جمعه 15 دی 1391, 15:11 عصر
برای اولی از جی کوئری استفاده کن و یا با آژاکس کار کن، برای مورد 2 هم با همان جاوا یا جی کوئری می تونی انجامش بدی
var answer = confirm("Save data?")
if (answer){
//some code
}
else{
//some code
}

mohsen_31369
جمعه 15 دی 1391, 15:30 عصر
سلام
مورد اولی که گفتی رو باید با ajax انجام بدی با jquery کار کن که راحت تره. در تگ فرم قسمت
<form onSubmit='return sendValue();' /> قرار بده و بعد کد javaScript زیر رو اضافه کن تا اصلاعات ارسال گردد

function sendValue()
{
$.post("script.php", $("form").serialize(),function(html){alert(html);},'text') ;
return false;
}



سمت سرور هم میتونی با
$_POST['nameOfElement'] به مقادیر ارسالی دسترسی داشته باشی

tehro0n
جمعه 15 دی 1391, 15:35 عصر
این فایل آژاکس رو برات ضمیمه کردم، نگاه بنداز ساده است، می تونی خودت تغییراتش رو بدی

ablofazlkianianboohi
جمعه 15 دی 1391, 18:20 عصر
ممنون دوستان
برای سوال اولم:
همه گفتید با جی کوئری یا ای جکس. بنده جی کوئری را تا حد کمی بلد هستم؛ اما ای جکس نه. می خواستم بدونم با این دو چطور باید کار کنم؟ مشکل مهمم اینجاست که کل کد من PHP هست حالا در جی کوئری و ای جکس PHP رو چطور پیاده کنم؟

برای سوال دوم:
بنده از همین confirm استفاده کردم و در if از PHP استفاده کردم اما جواب نداد. برای این مورد هم ممنون می شوم یکم بیشتر توضیح بدید.

دوست عزیز من فایل ای جکس رو هم دیدم. هر اسمی می نویسی در جوابش Loading... می ده. با این چطور باید کار کنم؟

بعد یه سوال:
در بین کدهای جی کوئری می تونم از PHP استفاده کنم؟

mohsen_31369
جمعه 15 دی 1391, 18:39 عصر
سلام
مورد اولی که گفتی رو باید با ajax انجام بدی با jquery کار کن که راحت تره. در تگ فرم قسمت
<form onSubmit='return sendValue();' /> قرار بده و بعد کد javaScript زیر رو اضافه کن تا اصلاعات ارسال گردد

function sendValue()
{
$.post("script.php", $("form").serialize(),function(html){alert(html);},'text') ;
return false;
}


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

سمت سرور هم میتونی با
$_POST['nameOfElement'] به مقادیر ارسالی دسترسی داشته باشی

tehro0n
شنبه 16 دی 1391, 14:10 عصر
ممنون دوستان
برای سوال اولم:
همه گفتید با جی کوئری یا ای جکس. بنده جی کوئری را تا حد کمی بلد هستم؛ اما ای جکس نه. می خواستم بدونم با این دو چطور باید کار کنم؟ مشکل مهمم اینجاست که کل کد من PHP هست حالا در جی کوئری و ای جکس PHP رو چطور پیاده کنم؟

برای سوال دوم:
بنده از همین confirm استفاده کردم و در if از PHP استفاده کردم اما جواب نداد. برای این مورد هم ممنون می شوم یکم بیشتر توضیح بدید.

دوست عزیز من فایل ای جکس رو هم دیدم. هر اسمی می نویسی در جوابش Loading... می ده. با این چطور باید کار کنم؟

بعد یه سوال:
در بین کدهای جی کوئری می تونم از PHP استفاده کنم؟

برای اولی همیشه وقتی مرورگر صفحه رو اجرا می کنه اول کدهای جاوا اجرا میشن و بعد کدهای php و نمیشه این دو را با هم ترکیب کرد، شما باید کدهای جاوا به کار برید
برای دومی هم توی لوکال هاست اجرا کنی درسته! چون فایل php داره نمی تونی در جایی غیر از برنامه هایی مثل xampp اجرا بگیری

ablofazlkianianboohi
شنبه 16 دی 1391, 17:20 عصر
دوستان
ممنون از راهنمایی هاتون
بلاخره تونستم با ajax کار کنم. فقط یک سوالی دارم:
من تو فایل دوم که داره پردازش انجام میشه من یک دکمه گذاشتم که type=submit هست. حالا تو همون فایل دوم تو php اومدم و گفتم isset دکمه مورد نظر بره به یک سایت دیگه. اما کار کنه. یعنی اصلا submit در فایل دوم کار نمی کنه . حتی با ajax هم نمیشه.

چرا؟

parsboy
شنبه 16 دی 1391, 17:23 عصر
از تگ <form> استفاده کن

ablofazlkianianboohi
شنبه 16 دی 1391, 18:11 عصر
دوست عزیز
استفاده کردم اما نمیشه.
این محتوای فایلی هست که به صورت ajax اجرا میشه:


<?php
include 'config.php';

$delbook= $_REQUEST['delbook'];

$result=mysql_query("SELECT * FROM books" , $myconn);
for($i = 0 ; $i != mysql_num_rows($result) ; $i++)
{
if(@mysql_result($result,$i,2)==$delbook)
{
echo "نام کتاب: ";print(@mysql_result($result,$i,2)."<br>");
echo "نویسنده: ";print(@mysql_result($result,$i,5)."<br>");
echo "شابک: ";print(@mysql_result($result,$i,3)."<br>");
}
}
if(isset($_POST['nodelete']))
{
header("Location: http://www.yahoo.com");
}
?>
<form id="deletebook" name="deletebook" method="post" action="">
<p>آیا از حذف کتاب مورد نظر مطمئن می باشید؟</p>
<table>
<tr>
<td><input type="submit" name="delete" id="delete" value="بله"/></td>
<td><input type="submit" name="nodelete" id="nodelete" value="خیر"/></td>
</tr>
</table>
</form>

parsboy
شنبه 16 دی 1391, 18:25 عصر
من فکر میکنم شما قسمت ajax مشگل دارید چون این کلید کار میکنه تست کن!


<?php

if(isset($_POST['delete']))
{
header("Location: http://www.yahoo.com");
}
?>
<form id="deletebook" name="deletebook" method="post" action="">
<p>آیا از حذف کتاب مورد نظر مطمئن می باشید؟</p>
<table>
<tr>
<td><input type="submit" name="delete" id="delete" value="بله"/></td>
<td><input type="submit" name="nodelete" id="nodelete" value="خیر"/></td>
</tr>
</table>
</form>

ablofazlkianianboohi
شنبه 16 دی 1391, 18:34 عصر
آقا بازم نشد!
تو فایل اصلی لود من به این صورت است:

$("#del").click(
function()
{
var delbook = $("input#delbook").val();
$("div#result").load('send.php',{delbook: delbook});
}


یک echo ساده می زاری انجام میشه اما فرم ارسال نمیشه و یا انجام نمیشه.
فایل دوم رو هم که قرار دادم مشکل چیست؟

parsboy
شنبه 16 دی 1391, 18:37 عصر
شما اون قسمت رو تو یک صفحه جدید ذخیره کن متوجه میشی هیچ مشگلی نیست 100% من فکر میکنم تو ajax مشکل هست!

ablofazlkianianboohi
شنبه 16 دی 1391, 19:19 عصر
منظورتون از اون قسمت کدوم قسمت هست؟
میشه یکم دقیق تر توضیح بدید؟

parsboy
شنبه 16 دی 1391, 19:27 عصر
این قسما رو در یه صفحه جدا ذخیره کن



<?php

if(isset($_POST['delete']))
{
header("Location: http://www.yahoo.com");
}
?>
<form id="deletebook" name="deletebook" method="post" action="">
<p>آیا از حذف کتاب مورد نظر مطمئن می باشید؟</p>
<table>
<tr>
<td><input type="submit" name="delete" id="delete" value="بله"/></td>
<td><input type="submit" name="nodelete" id="nodelete" value="خیر"/></td>
</tr>
</table>
</form>

ablofazlkianianboohi
شنبه 16 دی 1391, 19:30 عصر
دوست عزیز بنده هم همین کار رو کردم.
ببینید بنده یک فایل اصلی دارم به نام index.php که درون اون یک فرمی هست و یک دکمه. وقتی دکمه فشرده میشه به صورت ای جکس یه فایل دیگه به نام send.php فراخوانی میشه که محتواش همون محتوایی هست که شما قرار دادید. حالا تو فایل send.php دکمه کار نمی کنه.
مشکل اینجاست!!!

ablofazlkianianboohi
یک شنبه 17 دی 1391, 19:52 عصر
دوستان
به دو فایل زیر توجه کنید:
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>


حالا به سایت یاهو نمیره. مشکل چی هست؟


ممنون می شوم راهنمایی بفرمایید.

boysilent
دوشنبه 18 دی 1391, 12:15 عصر
سلام دوست عزیز شما دقیقا میخواید یه سری مقادیر داخل فرم به صفحه send.php رفته و در پایگاه ذخیره بشه
اینو میخواید با Ajax که راهنمایی کنم ؟
اون تابعی که نوشتید رو در قسمت تعریف دکمه اینجوری باید تعریف کنید

onclick="funcname()

ablofazlkianianboohi
دوشنبه 18 دی 1391, 14:58 عصر
بله تقریبا؛ اما ذخیره نه. من می خوام مقدار فیلد صفحه index.php بره به صفحه send.php و با استفاده از مقدار اون یکسری کوئری از دیتابیس گرفته بشه که این کار رو با حلقه for و if و print انجام دادم و شد. حالا تو صفحه send.php یک دکمه دارم که می خوام وقتی زده شد با استفاده از اون مقدار فیلد صفحه index.php دوباره یک کوئری از دیتابیس گرفته بشه. اصل برنامه این هست که تو صفحه index.php کاربر نام کتابی که میخواد حذف بشود را می نویسه. به صورت ای جکس (یعنی همون فایل send.php) اطلاعات اون کتاب داده میشه و یک دکمه برای تایید حذف کتاب که دکمه صفحه send.php کار نمی کنه.

این رو می خوام بدونم.


ممنون

boysilent
سه شنبه 19 دی 1391, 10:18 صبح
خوب با AJAX کاری نداره که ID رو با ایجکس میفرستی به صفحه SENDبعد مقدار ایدی رو میگیری و هر کاری خواستی انجام میدی بعد در اخر میگی اگه حذف شد
ECHO '1'; اگر هم که نشد 0 رو بر گردونه بعد داخل صفحه اول میگی اگه مقدار
xmlHttp.RESPONSETEXT==1
ALERT("حذف شد");
ELSE
ALERT("حذف نشد");

شرمنده دیگه CAPSLOCK روشن بود

ablofazlkianianboohi
سه شنبه 19 دی 1391, 13:40 عصر
دوست عزیز
فکر کنم نتونستم خوب منظورم رو برسونم.
بله. بنده id فیلد مورد نظر رو می فرسته به send.php و با اون از دیتابیس کوئری می گیرم و اطلاعات کتاب رو نشون می دم.
مشکل اینجاست که من می خوام تو فایل send.php یک دکمه دیگه برای تایید حذف داشته باشم. یعنی " آیا مطمئن به حذف هستید؟ " . حالا دکمه رو می زارم و براش تو همون فایل send.php یک بلک if(isset) هم ایجاد می کنم اما با داخل این بلاک اصلا نمی ره.
مشکلم اینه.