PDA

View Full Version : چگونه می توان بین جاوا اسکریپت و php ارتباط برقرار کرد؟



nassim_20
چهارشنبه 14 آذر 1386, 16:58 عصر
دوستان سلام
می خواستم بدانم چگونه می توان بین جاوا اسکریپت و php ارتباط برقرار کرد؟
بهتره توضیح بدهم که می خواهم یه منو بسازم که زیر منوهایش پویا ست و از بانک میخواند و نیز خود منوها علاوه بر اینکه حکم منو رو دارند لینک هم هستند من تنها با استفاده از لینکشان می توانم زیر منوهایش را از بانک بخوانم و بعنوان زیرمنو نمایش دهم این سوال رو در قسمت طراحی صفحات وب، JavaScript ، HTML و VBScript پرسیدم و دوستمون آقای Ali_ix پاسخ دادند که با استفاده از کد زیر میشود لینکی که موس بر روی ان قرار می گیرد آدرسش را بدست اورد


<a href="barnamenevis.org" onmouseover="alert(this.href);">forum</a>

حال سوال من اینست که با استفاده از کد جاوایی this.href می شود ادرس لینک را بدست اورد ولی من چطور می تونم این ادرس بدست امده رو در یک رشته قرار بدهم که در کدنویسی php از اون استفاده کنم
در ضمن حتما باید از جاوااسکریپت استفاده کنم یا خود php هم کدی در این زمینه دارده؟
ممنون میشم کمکم کنید..

Cave_Man
چهارشنبه 14 آذر 1386, 18:49 عصر
من مدتی هست که دیگه کد نویسی PHP رو JScript رو موقتا گذاشتم کنار
اما قبلا برای این کار این کار روبا نام گذاری اشیا و تگ ها انجام میدادم مثلا برای اون Hyperlink یک Attribute با نام name یا ID ایجاد میکردم و با استفاده از اون نام به مقادیرش دستسترسی داشتم البته تا جایی که یادمه حتی باید برای تگ form رو هم نام انتخاب کنید
ولی دقیق ترش رو یادم نیست

hamid57
پنج شنبه 15 آذر 1386, 11:38 صبح
دوست عزیز ، زبان php یه زبان سمت سرور (server side) هست . برخلاف جاوا اسکریپت که یه زبان سمت کلاینته (client side) . یعنی دستورات php که شما مینویسید ،‌بر روی سرور اجرا میشن و خروجی html برای کلاینت فرستاده میشه. ولی دستورات جاوا اسکرییپت همراه با فایل html بر روی کلاینت فرستاده میشن و همونجا اجرا میشن. بهمین خاطر شما نمیتونید اینطوری یک رشته رو از توی جاوا اسکریپت بدست بیارین و توی php ازش استفاده کنین.
یه راهش اینه که کد php که قراره با متغیر رشته ای جاوا اسکریپت کار کنه رو توی یه فایل دیگه بذارید ،‌بعداً با استفاده از فرم یا query string ،‌متغیر رو بهش بدی که کارتو انجام بده.
یه راه دیگه اش هم استفاده از تکنیک ajax توی صفحه هاتونه که یخورده سخت تره.
من به شما همون راه اول رو پیشنهاد میکنم.

scorpion_man
پنج شنبه 29 آذر 1386, 01:49 صبح
سلام به همه دوستان
اگه میخوای قبلش دیتا رو بخونی و منو ایجاد بکنی که خیلی ساده هست واگه میخوای بعد ایجاد منو از database بخونی خیلی مشکله ولی با تکنولوژی ajax میشه انجامش داد
موفق باشید

Bahram0110
دوشنبه 03 دی 1386, 09:27 صبح
اصلا نمی خواد از جاوا اسکریپت استفاده کنی
می تونی مثلا از لینکی مثل این استفاده کنی ...
http://yoursite.com/index.php?menu=10&submenu=2
بعد مقدار منو و ساب منو رو از طریق زیر می تونی بدست بیاری:


$menu = $_GET['menu'];
$submenu = $_GET['submenu'];

یعنی از query string استفاده کنی

kheybar
یک شنبه 09 دی 1386, 16:42 عصر
سلام دوست من . من هم همین مشکل را داشتم کلی هم تلاش کردم ولی به هیچ وجه نمیشه بین این دو ارتباط برقرار کرد.
حالا من یه راه حل خودم درست کردم نمیدونم منطقی است یا نه ولی من خودم استفاه کردم و مشکلم هم حل شد.
فرض کن همان منویی که گفتی قرار است که منویی داشته باشیم که زیر منوهای آن داینامیک است لطفا به این سایت که آدرسش رو گذاشتم یه نگاه بنداز منوی بالاش رو من درست کردم.
http://jdnasir.ac.ir/index.asp
البته این سایت با زمان ASP طراحی شده ولی این روش که بهت میگم هیچ فرقی نداره که زبانت چی است.
فرض کن میخاهیم به تعداد رکورد هایی که در بانک داریم با استفاده از جاوا در سمت کلاینت در یک تیبل سلول درست کنیم.
کافیست که کد جاوا رو باز کنیم و داخل آن کد asp بنویسیم . وقتی با استفاده از asp بانک رو خواندیم کافیست که یک سری رشته درست کنیم حال ساختاری شبیه آرایه ها در جاوا داشته باشند. وقتی در داخل کد جاوا با استفاده از asp مقادیر را خواندیم کافست آنها را به صورت آرایه چاپ کنیم.
در این حالت در اصل نه جاوا asp رو میفهمه نه بالاعکس فقط asp یک رشته چاپ کرده همین.
ولی چون این رشته به صورت استاندارد جاوا چاپ شده و در وسط تگ جاوا است جاوا آن را و تعداد رکورد های هر آرایه را میفهمد . دقیقا مثل اینکه یک کاربر کد جاوا ساخته است.


<script type="text/JavaScript">
function submitform()
{
var pt="";
var e="";
var a=new Array();
var myx = 0;
<%
c=0
rs.open "select * from t1 where f_top = '1' and f_parent = 0 order by f_order",conn
if not rs.eof then
while not rs.eof
c=c+1
rss.open "select * from t1 where f_top = '1' and f_parent = " & rs("f_id") & " order by f_order",conn
ttt = ""
if not rss.eof then
while not rss.eof
if not strcomp(rss("f_address"),"") = 0 then
ttt = ttt & "<a class='under_topmenu' href='" & rss("f_address") & "'>&nbsp;&nbsp;" & rss("f_name") & "&nbsp;&nbsp;</a><img border='0' src='MainPage/Pic/heder_Line.gif' width='2' height='8' >"
else
ttt = ttt & "<a class='under_topmenu' href='#'>&nbsp;&nbsp;" & rss("f_name") & "&nbsp;&nbsp;</a><img border='0' src='MainPage/Pic/heder_Line.gif' width='2' height='8' >"
end if
rss.movenext
wend
ttt = "<img border='0' src='MainPage/Pic/heder_Line.gif' width='2' height='8' >" & ttt
end if
rss.close
response.write("a[" & rs("f_id") & "] = """ & ttt & """;"&vbcrlf)
rs.movenext
wend
end if
rs.close
%>
</script>


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

amirhosein
دوشنبه 17 دی 1386, 21:51 عصر
متغیرهای JS رو می تونی با php ست کنی ولی عکسشو نه.