PDA

View Full Version : دو سوال مخلوط با جاوا



mohammad-gh
پنج شنبه 25 شهریور 1389, 20:19 عصر
سلام
با توجه به استفاده روز افزون جاوا در php دو سوال دارم که تبدیل به مشکل شده اند

1- من اگر بخوام تابع جاوایی را بدون رویداد خاصی اجرا کنم چه کدی را باید بنویسم
(مثلا می خوام بعد از عمل insert یک تابع جاوا اجرا بشه) تک کد زیر جواب نمیده:


<script>
message();
alert('dcercer');
</script>

که message یه تابع است
2- تابع alert جاوا (جهت نمایش پیغام)که همیشه از آن استفاده کرده ام در تکه کد php که نوشته ام عمل نمی کند، آیا باید برای نمایش پیغام جاوا در php موارد خاصی را چک کنم

اگر برای نمایش پیغام به صورت اخطار به کاربر تابع یا کد خوبی می شناسید، دریغ نفرمایید

binyaft
پنج شنبه 25 شهریور 1389, 21:03 عصر
قسمت سورس مرورگ رو ببینید که ایا alert چاپ شده یانه
جاوا اسکریپت مرورگرتون فعاله؟
اصلا تابعی به نام message در برنامه وجو داره؟؟؟؟

yasgig
پنج شنبه 25 شهریور 1389, 21:39 عصر
<script> message(); alert('dcercer'); </script>
مطمئنید که این تکه کد کار میکنه؟
شما می تونین چک کنین بعد توی خروجی چاپ کنین

<script>
function message()
{
alert('dcercer');
}
</script>
در ضمن واسه اجرای این کد باید حداقل یه رویداد مثل زیر باشه

<body onload="message()"></body>
اگر هم خواستین بدون رویداد باشه شما باید بعد از چک کردن توسط پی اچ پی خروجی زیر رو چاپ کنین

<script>
alert('dcercer');
</script>
حالا شما کجا مشکل دارین؟

funpatogh
پنج شنبه 25 شهریور 1389, 21:46 عصر
شما این کد جاواتون رو که مینویسید اصلا echo یا پرینت میکنی؟

امیـرحسین
پنج شنبه 25 شهریور 1389, 21:53 عصر
1. جاوااسکریپت با جاوا فرق می کنه!
2. PHP در سرور اجرا میشه و جاوااسکریپت در مرورگر! طبیعتا وقتی کدها در سرور هستند، خبری از مرورگر نیست که بخواد کدهای جاواسکریپت یا HTML رو اجرا کنه. حداکثر کاری که می تونیم بکنیم اینه که کدهای جاوااسکریپت رو توسط PHP بسازیم نه اجرا کنیم. این کدها در سرور ساخته و سر هم میشند و وقتی به مرورگر میرسند کاملا قابل اجرا باید باشند چون در مرورگر دیگه خبری از سرور و PHP نیست.
پس نمیشه توابع جاوااسکریپت رو در PHP اجرا کرد بلکه فقط میشه در یک تگ <script> چاپشون کرد تا وقتی صفحه داشت لود میشد و به این خط رسید اجرا بشه که البته چنین روشی چندان کارا نیست و برای ارتباط PHP و JavaScript از AJAX استفاده میشه.

mohammad-gh
جمعه 26 شهریور 1389, 20:09 عصر
با سلام و تشکر از پاسخها

اصلا تابعی به نام message در برنامه وجو داره؟؟؟؟
بله من بدنه این تابع رو تو قسمت هد نوشتم که همون alert را اجرا می کنه

<script type="text/javascript" >
function message()
{
alert (" Hello friends! ")
}
</script>

اگر هم خواستین بدون رویداد باشه شما باید بعد از چک کردن توسط پی اچ پی خروجی زیر رو چاپ کنین
دوست عزیز من همین کار رو دقیقا می کنم
البته منظورتون رو ا ز بعد از چک کردن توسط پی اچ پی نفهمیدم
به هر حال من کل کد رو می گذارم تا شاید مشکل پیدا بشه
در ضمت جاوای مرورگر هم روشن است ، راستی این خطا مربوط به یک کد است که توسط آژاکس اجرا میشه
یعنی دستورات از یک صفحه دیگر خوانده می شوند که باید اونجا این خطا تولید بشه



if ($codek!=null || $vark!=null){
//echo"success<br>$codek<br>$vark<br>$namek<br>$datek";
$resultdupl = mysql_query("SELECT * FROM sabad where codek=$codek and vark=$vark") or die(mysql_error());
$duliresualt= mysql_num_rows($resultdupl);

if ($duliresualt==0){
$result1 = mysql_query("SELECT * FROM films where fid=$codek") or die(mysql_error());
$row=mysql_fetch_assoc($result1);
$codef= $row["fid"];
$namefa= $row["namefa"];
$nameen= $row["nameen"];
$divx= $row["divx"];
$Divx_tedad= $row["Divx_tedad"];
$Divx_size= $row["Divx_size"];
$Divx_price= $row["Divx_price"];
$Divx_va= $row["Divx_va"];
$dvd= $row["dvd"];
$dvd_tedad= $row["dvd_tedad"];
$dvd_size= $row["dvd_size"];
$dvd_price= $row["dvd_price"];
$dvd_va= $row["dvd_va"];

if ($vark==1){
mysql_query("INSERT INTO sabad VALUES('','$myusername','$codek','$vark','$namefa' ,$Divx_tedad,$Divx_size,$Divx_price)") or die(mysql_error());
}else{
mysql_query("INSERT INTO sabad VALUES('','$myusername','$codek','$vark','$namefa' ,$dvd_tedad,$dvd_size,$dvd_price)") or die(mysql_error());
}
//------end of insert---------------
}else{
?>
<script language='javascript' >
alert(" duolicate insert error ");
</script>
<?php
}

}

yasgig
جمعه 26 شهریور 1389, 20:18 عصر
البته منظورتون رو ا ز بعد از چک کردن توسط پی اچ پی نفهمیدم
منظورم این بود که مثلا وقتی نام کاربری وجود نداشت این هشدار نشون داده بشه.واسه این کار باید با پی اچ پی چک کنین مثلا اگه نام کاربری وجود داشت که هیچی ولی اگه وجود نداشت این کد رو چاپ کن.منظورم از چک کردن همین بود.

mohammad-gh
شنبه 27 شهریور 1389, 11:20 صبح
نمی دونم مشکل از کجاست
نکنه به خاطر اینه که صفحه ای که در اون alert ایجا دمیشه صفحه ای است که توسط آزاکس فراخوانی میشه، یعنی صفحه پدر نیست و صفحه فرزنده!
اگه اینطوره پس من باید چی کار کنم که پیغام رو نشون بده

راستش من صفحه index دارم که توش صفحه sabad رو با آژاکس فراخوانی می کنم، کد مربوط به نمایش پیغام هم اونجا نمایش پیدا می کنه!

binyaft
شنبه 27 شهریور 1389, 13:06 عصر
یعنی شما تابع message رو در index.php دارید و تابع رو از یه فایل دیگه با آژاکس فراخوانی میکنید ؟؟؟
اگه اینطوره ، نمیشه ، محتوای فایل فرزند از فایل والد تاثیر نمیپذیره البته در آژاکس!!!!

mohammad-gh
شنبه 27 شهریور 1389, 14:15 عصر
ممنون از توجه همه
راحت بگم من تابع رو ب رویداد می تونم فراخوانی کنم ، ولی بدون رویداد نمیشه
مثلا تو رویداد onclick یه img میشه این کار رو کرد


<img src='images/deletef.gif' border='0' onclick='message()'>

ولی بدون رویداد هر کاری می کنم نمیشه
من می خوام به یه جای کد که رسید این تابع اجرا بشه(بدون کلیک یا رویدادهای ماوس )

binyaft
شنبه 27 شهریور 1389, 14:34 عصر
خوب به جای onclick بزارید onload

mohammad-gh
شنبه 27 شهریور 1389, 18:37 عصر
binyaft (http://barnamenevis.org/forum/member.php?u=106845) جان غیر از body که اول صفحه میاد بقیه رویداد onload ندارن
من یا رویدادی می خوام که بدون نیاز به عمل کاربر در انتهای برنامه اجرا بشه
یا تکه کدی که یک تابع جاوا را فراخوانی کنه!

binyaft
شنبه 27 شهریور 1389, 18:58 عصر
کی گفته نداره؟؟؟ :متفکر:
<img src="access.png" onload="javascript:alert('123123123123123123');">

mohammad-gh
یک شنبه 28 شهریور 1389, 11:43 صبح
نمی دونم یا من سوادم کمه یا شما دارید یه جا اشتباه می کنید
چون load و unload مخصوص صفحه است نه اشیا
اینجا رو ببینید
http://www.developerstudio.ir/HTML/Events.aspx#file

به هر حال باز هم امتحان کردم اما نشد!

binyaft
یک شنبه 28 شهریور 1389, 12:04 عصر
من همینو داخل مرورگر کروم اجرا کردم

yasgig
یک شنبه 28 شهریور 1389, 12:18 عصر
من یا رویدادی می خوام که بدون نیاز به عمل کاربر در انتهای برنامه اجرا بشه
یا تکه کدی که یک تابع جاوا را فراخوانی کنه!
خوب توی آخر صفحه کد زیر رو قرار بدین:

<script language="javascript" type="text/javascript" src="jot.js"></script>
و محتوای فایل jot.js رو به صورت زیر تعریف کنین

document.write("<script>alert('hello');</script>");

mohammad-gh
یک شنبه 28 شهریور 1389, 12:26 عصر
ممنون از
yasgig (http://barnamenevis.org/forum/member.php?u=109401)
اما این نوع فراخونی به کار من نمیاد
واقعا عجیبه که از داخل کد php نشه یه تابع جاوا رو بدون رویداد فراخوانی کرد!