PDA

View Full Version : جاوا اسکریپت با پی اچ پی



tanha2007
سه شنبه 03 مهر 1386, 07:10 صبح
من دوفایل پی اچ پی دارم:
1. list.php
2. delete.php
روی فایل list.php من یک لینک دارم که به delete.php اشاره مینماید و id محصل را نیز با خود میفرستد...

روی فایل delete.php من این کد را دارم:


<body>
<?php
//must ask for confirmation, now it not check it...
if(isset($_GET['studentCode']))
{
$getCode = $_GET['studentCode'];
?>
<script language="javascript">
var del = window.confirm('Are you sure deleting the selected record?');
if(del==true)
{
<?php
include ("../database.php");
connect();
doCommand("DELETE FROM tblstudent WHERE stCode=$getCode");
disConnect();
print(reDirect("list.php"));
?>
}
else
{
alert('Canceled Deletion');
<?php
print(reDirect("list.php"));
?>
}
</script>
<?php
}
?>
</body>


این کد سطر مربوطه id فرستاده را پاک مینماید، ولی پیام تاییدی ظاهر نمیشود، یعنی بدون اینکه از کاربر پرسان نماید اطلاعات را پاک مینماید.
من میخواهم قبل از پاک کردن پیام تاییدی ظاهر گردد....

mrrajabi
سه شنبه 03 مهر 1386, 09:01 صبح
شما عمل اطمینان از پاک شدن را در همان صفحه ی list باید چک کنید.بطور کلی بهینه تر هم این اینست که شما فقط وقتی به سمت سرور بری که بایستی یکی از عملیات مربوط به درج,پاک کردن,اضافه کردن و یا جستجو را داشته باشد و عملیات مربوط به کاربر را قبل از رفتن به سمت سرور چک کنید.
در اینجا شما وقتی به صفحه ی delete می روید شرط برقرار است و عملیات سمت سرور کامل اجرا می شود .
صفحه ی list.php



var del = window.confirm('are yor sure?')
if (del==true) frmName.submit();


که سابمیت شما باید برای صفحه ی delete.php باشد.

صفحه ی delete.php


if(isset($_get['studentCode']))
{
عملیات مورد نظر
{

tanha2007
سه شنبه 03 مهر 1386, 09:15 صبح
سلام دوست عزیز،
1. من در صفحه list.php از تک فر استفاده نکردم، فقط زمانیکه روی لینک کلیک مینمایم id سطر جاری به صفحه delete.php میفرستد.
2. چگونه میتوانم اینکار را روی فایل list.php قرار دهم و چگونه زمانیکه روی لینک کلیک مینمایم چک نماید؟
تشکر

mrrajabi
سه شنبه 03 مهر 1386, 11:49 صبح
شما بجای لینکتون از دکمه استفاده کنید و در رویداد onclick از دکمه تابعی صدا بزنید که کدهای بالائی رو که من نوشتمرو داخلش بنویسین.


<input type='button' value=<?php print('meghdare morede nazaretun'); onclick='Check(<?php print('Id ke gharar ast hazf shavad');?>);'?>


function Check()
{

var del = window.confirm('are yor sure?')
if (del==true) frmName.submit();}

و یک تگ فرم هم اضافه کنید و عناصرتون رو داخل اون تگ کپی کنید

tabib_m
سه شنبه 03 مهر 1386, 15:04 عصر
نیازی به استفاده از دکمه به جای لینک نیست:


<script>
function delrecord(theID){
if(confirm("Are you sure?")){
window.location='delete.php?studentCode='+theID;
}
}
</script>


<a href="javascript: delrecord('<?=$recordID;?>');">...</a>

tanha2007
چهارشنبه 04 مهر 1386, 11:53 صبح
تشکر دوستان،
اگر خواسته باشم با همین حالت لینک کار نمایم، امکان این است که تاییدی پاک کردن رکورد را در همان صفحه (list.php) چک نمایم؟ اگر بلی چگونه...؟

tabib_m
چهارشنبه 04 مهر 1386, 19:40 عصر
منظورت از همین حالت، کدوم حالته؟ لینکی که من نمونه ش رو گذاشتم، یا نمونه ی لینک خودت؟

فکر کنم منظورت این باشه:


<a href="delete.php?studenCoed=<?=$theCode;?>" onclick="if(confirm('are you sure?')) document.location=this.src; else return false;">click here</a>


این قسمتی که سیاه کردم، در مورد همه ی لینکها ثابت هست، دیگه خود آدرس لینک هم (href) هر چیزی که خواستی میتونی بذاری.
در این صورت، قبل از این که عمل حذف انجام بشه، اول به کاربر یک اخطار میده، بعد از اینکه کاربر جواب مثبت داد، به صفحه ی حذف منتقل میشه که دیگه اونجا هر کاری دلت خواست میتونی بکنی...

موفق باشید.

tanha2007
پنج شنبه 05 مهر 1386, 10:52 صبح
سلام.
من در صفحه list.php ازین طریق لینک را استفاده مینمایم....

<td><?php print("<a href=\"deleteStudent.php?studentCode=$studentCode\">Delete</a>"); ?></td>
چگونه کد شما را قرار دهم؟

tabib_m
پنج شنبه 05 مهر 1386, 13:01 عصر
<td><?php print("<a href=\"deleteStudent.php?studentCode=$studentCode\" onclick=\"if(confirm('are you sure?')) document.location=this.src; else return false;\">Delete</a>"); ?></td>

سعی کن بیشتر روی مبحث html و ارسال خروجی html به وسیله ی php کار (یا مطالعه) کنی...

موفق باشید.

musiox
پنج شنبه 05 مهر 1386, 16:18 عصر
<body>
<?php

if(isset($_GET['confirm'])){
if(isset($_GET['studentCode']))
{
$getCode = $_GET['studentCode'];
include ("../database.php");
connect();
doCommand("DELETE FROM tblstudent WHERE stCode=$getCode");
disConnect();
print(reDirect("list.php"));

}else{

print(reDirect("list.php"));

}
}elseif(isset($_GET['studentCode'])){

$getCode = $_GET['studentCode'];

?>
Are you sure?
<br>
<form action="delete.php">
<input type="HIDDEN" name="studentCode" value="<?php echo $getCode; ?>">
<input type="SUBMIT" value="yes" name="confirm">
<input type="BUTTON" value="no" onclick="javascript:window.location('list.php');">
</form>

<?php
}else{

print(reDirect('list.php'));

}
?>
</body>

tanha2007
یک شنبه 08 مهر 1386, 07:25 صبح
تشکر از همه،
این کد واقعا عالی بود............................




<td><?php print("<a href=\"deleteStudent.php?studentCode=$studentCode\" onclick=\"if(confirm('are you sure?')) document.location=this.src; else return false;\">Delete</a>"); ?></td>

سعی کن بیشتر روی مبحث html و ارسال خروجی html به وسیله ی php کار (یا مطالعه) کنی...

موفق باشید.