الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سكريبت php داخل سكريبت javascript

بدأه nassim في 16 مارس 2011 · 6 رد · 948 مشاهدة · في قسم البرمجة بــ Javascript
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

بحثت كثيرا عن سكريبت يعمل مثل موقع كتب قوقل books.google.com

تكون لديك قائمة الكتب و عند الضغط على يمين قائمة الكتب تنزاح القائمة الى اليمين و نفس الشيء من الجهة اليسرى

وجدت هدا السكريبت الدي يقوم بنفس العمل

<script type="text/javascript">

/***********************************************
* Scrollable Menu Links- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
* Visit http://www.dynamicDrive.com for hundreds of DHTML scripts
* This notice must stay intact for legal use
***********************************************/

//configure path for left and right arrows
var goleftimage='pointer2.gif'
var gorightimage='pointer.gif'
//configure menu width (in px):
var menuwidth=500
//configure menu height (in px):
var menuheight=250
//Specify scroll buttons directions ("normal" or "reverse"):
var scrolldir="normal"
//configure scroll speed (1-10), where larger is faster
var scrollspeed=6
//specify menu content
var menucontents='<? include  "10.php"; ?>'


////NO NEED TO EDIT BELOW THIS LINE////////////

var iedom=document.all||document.getElementById
var leftdircode='onMouseover="moveleft()" onMouseout="clearTimeout(lefttime)"'
var rightdircode='onMouseover="moveright()" onMouseout="clearTimeout(righttime)"'
if (scrolldir=="reverse"){
var tempswap=leftdircode
leftdircode=rightdircode
rightdircode=tempswap
}
if (iedom)
document.write('<span id="temp" style="visibility:hidden;position:absolute;top:-100;left:-

10000">'+menucontents+'</span>')
var actualwidth=''
var cross_scroll, ns_scroll
var loadedyes=0
function fillup(){
if (iedom){
cross_scroll=document.getElementById? document.getElementById("test2") : document.all.test2
cross_scroll.innerHTML=menucontents
actualwidth=document.all? cross_scroll.offsetWidth : document.getElementById("temp").offsetWidth
}
else if (document.layers){
ns_scroll=document.ns_scrollmenu.document.ns_scrollmenu2
ns_scroll.document.write(menucontents)
ns_scroll.document.close()
actualwidth=ns_scroll.document.width
}
loadedyes=1
}
window.onload=fillup

function moveleft(){
if (loadedyes){
if (iedom&&parseInt(cross_scroll.style.left)>(menuwidth-actualwidth)){
cross_scroll.style.left=parseInt(cross_scroll.style.left)-scrollspeed+"px"
}
else if (document.layers&&ns_scroll.left>(menuwidth-actualwidth))
ns_scroll.left-=scrollspeed
}
lefttime=setTimeout("moveleft()",50)
}

function moveright(){
if (loadedyes){
if (iedom&&parseInt(cross_scroll.style.left)<0)
cross_scroll.style.left=parseInt(cross_scroll.style.left)+scrollspeed+"px"
else if (document.layers&&ns_scroll.left<0)
ns_scroll.left+=scrollspeed
}
righttime=setTimeout("moveright()",50)
}


if (iedom||document.layers){
with (document){
write('<table border="0" cellspacing="0" cellpadding="2">')
write('<td valign="middle"><a href="#" '+leftdircode+'><img src="'+goleftimage+'"border=0></a> 

</td>')
write('<td width="'+menuwidth+'px" valign="top">')
if (iedom){
write('<div 

style="position:relative;width:'+menuwidth+'px;height:'+menuheight+'px;overflow:hidden;">')
write('<div id="test2" style="position:absolute;left:0;top:0">')
write('</div></div>')
}
else if (document.layers){
write('<ilayer width='+menuwidth+' height='+menuheight+' name="ns_scrollmenu">')
write('<layer name="ns_scrollmenu2" left=0 top=0></layer></ilayer>')
}
write('</td>')
write('<td valign="middle"> <a href="#" '+rightdircode+'>')
write('<img src="'+gorightimage+'"border=0></a>')
write('</td></table>')
}
}

</script>

لكن المشكل انه عندما اضع ملف بي اش بي داخله لا يعمل

ممكن فكرة لحل هده المشكلة

شكرا

تم تعديل هذه المشاركة بواسطة nassim في 16 مارس 2011 في 15:00

#2
اقتباس
لكن المشكل انه عندما اضع ملف بي اش بي داخله لا يعمل

لا افهم ما هي المشكلة بالضبط لكن في ضوء تجريبي للكود ساقول التالى

اولا هناك مشكلة في الاسكريبت نفسه حيث توجد بعض السطور الفارغة التي تؤدي الى حدوث اخطاء في الجافاسكربت

مثل

write('<div 

style="position:relative;width:'+menuwidth+'px;height:'+menuheight+'px;overflow:hidden;">')

المهم تم اصلاح الاسكربت من ناحية الجافا اسكربت و ها هو الكود الذي يعمل

<script type="text/javascript">

    /***********************************************
     * Scrollable Menu Links- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
     * Visit http://www.dynamicDrive.com for hundreds of DHTML scripts
     * This notice must stay intact for legal use
     ***********************************************/

    //configure path for left and right arrows
    var goleftimage='pointer2.gif'
    var gorightimage='pointer.gif'
    //configure menu width (in px):
    var menuwidth=500
    //configure menu height (in px):
    var menuheight=250
    //Specify scroll buttons directions ("normal" or "reverse"):
    var scrolldir="normal"
    //configure scroll speed (1-10), where larger is faster
    var scrollspeed=6
    //specify menu content
    var menucontents='<? include  "10.php"; ?>'


    ////NO NEED TO EDIT BELOW THIS LINE////////////

    var iedom=document.all||document.getElementById
    var leftdircode='onMouseover="moveleft()" onMouseout="clearTimeout(lefttime)"'
    var rightdircode='onMouseover="moveright()" onMouseout="clearTimeout(righttime)"'
    if (scrolldir=="reverse"){
        var tempswap=leftdircode
        leftdircode=rightdircode
        rightdircode=tempswap
    }
    if (iedom)
        document.write('<span id="temp" style="visibility:hidden;position:absolute;top:-100;left:-10000">'+menucontents+'</span>')
    var actualwidth=''
    var cross_scroll, ns_scroll
    var loadedyes=0
    function fillup(){
        if (iedom){
            cross_scroll=document.getElementById? document.getElementById("test2") : document.all.test2
            cross_scroll.innerHTML=menucontents
            actualwidth=document.all? cross_scroll.offsetWidth : document.getElementById("temp").offsetWidth
        }
        else if (document.layers){
            ns_scroll=document.ns_scrollmenu.document.ns_scrollmenu2
            ns_scroll.document.write(menucontents)
            ns_scroll.document.close()
            actualwidth=ns_scroll.document.width
        }
        loadedyes=1
    }
    window.onload=fillup

    function moveleft(){
        if (loadedyes){
            if (iedom&&parseInt(cross_scroll.style.left)>(menuwidth-actualwidth)){
                cross_scroll.style.left=parseInt(cross_scroll.style.left)-scrollspeed+"px"
            }
            else if (document.layers&&ns_scroll.left>(menuwidth-actualwidth))
                ns_scroll.left-=scrollspeed
        }
        lefttime=setTimeout("moveleft()",50)
    }

    function moveright(){
        if (loadedyes){
            if (iedom&&parseInt(cross_scroll.style.left)<0)
                cross_scroll.style.left=parseInt(cross_scroll.style.left)+scrollspeed+"px"
            else if (document.layers&&ns_scroll.left<0)
                ns_scroll.left+=scrollspeed
        }
        righttime=setTimeout("moveright()",50)
    }


    if (iedom||document.layers){
        with (document){
            write('<table border="0" cellspacing="0" cellpadding="2">')
            write('<td valign="middle"><a href="#" '+leftdircode+'><img src="'+goleftimage+'"border=0></a> </td>')
            write('<td width="'+menuwidth+'px" valign="top">')
            if (iedom){
                write('<div style="position:relative;width:'+menuwidth+'px;height:'+menuheight+'px;overflow:hidden;">')
                write('<div id="test2" style="position:absolute;left:0;top:0">')
                write('</div></div>')
            }
            else if (document.layers){
                write('<ilayer width='+menuwidth+' height='+menuheight+' name="ns_scrollmenu">')
                write('<layer name="ns_scrollmenu2" left=0 top=0></layer></ilayer>')
            }
            write('</td>')
            write('<td valign="middle"> <a href="#" '+rightdircode+'>')
            write('<img src="'+gorightimage+'"border=0></a>')
            write('</td></table>')
        }
    }

</script>

لا اعرف ما المفترض ان يكون محتوي ملف 10.php الذي تم استدعاؤه

لكن هكذا اظن الجافا اسكربت يعمل و ما عليك هو ان تحدد ما هو شكل الاتش تي ام ال الذي سيتم انتاجه بواسطة هذا الملف

#3

شكرا لك

المشكل ليس سكريبت الجافا فهو يعمل عادي يمكنك اعادة تجربته في صفحة بعد حدف

<? include  "10.php"; ?>

ضع كلمة طويلة و سترى انه يمكنك تحريك الكلمة من اليمين و اليسار

انا اريد في مكان الكلمة اضع رابط لصفحة 10.php

و لم تعمل معي الفكرة

#4

السلام عليكم ورحمة الله

مثالك يعمل على شكله الحالي بشكل جيد...

لكن يجب أن يكون محتوى 10.php هو طباعة لأي شيء

فمثلا لو فرضنا أن محتوى صفحة 10.php هو :

<?php
echo '<nobr><a href="http://www.dynamicdrive.com">Dynamic Drive</a> | <a href="http://www.javascriptkit.com">JavaScript Kit</a> | <a href="http://www.codingforums.com">CodingForums.com</a> | <a href="http://www.builder.com">Builder.com</a> | <a href="http://freewarejava.com">Freewarejava.com</a></nobr>';
?>

سيعمل الكود الخاص بك على حاله بشكل جيد

فقط عليك التأكد من :

1- محتوى الملف 10.php

2- كتابة سكريبت الـ javascript ضمن ملف php وليس ملف html

ملاحظة : ما أشار إليه الأخ shalkam صحيح يوجد في الكود المضاف من قبلك unterminated strings, قد تكون المشكلة حصلت أثناء نقلك للسكريبت من الملف إلى المشاركة, أن قمت بضغط enter ضمن الكود عن طريق الخطأ فظهرت هذه الأسطر الفارغة

بتوفيق الله...

تم تعديل هذه المشاركة بواسطة MoHaMMaD Pro في 17 مارس 2011 في 08:11

Everything will be fine when we TALK LESS, DO MORE


#5
nassim كتب:

شكرا لك

المشكل ليس سكريبت الجافا فهو يعمل عادي يمكنك اعادة تجربته في صفحة بعد حدف

<? include  "10.php"; ?>

ضع كلمة طويلة و سترى انه يمكنك تحريك الكلمة من اليمين و اليسار

انا اريد في مكان الكلمة اضع رابط لصفحة 10.php

و لم تعمل معي الفكرة

احب اوضح شيء اخر بناء على ما كتبت بالاضافة الى ملاحظات الأخ MoHaMMaD Pro

انه لكي تعمل وظيفة "include" يجب تحديد مسار الملف بشكل صحيح.

و في هذه الحالة انصح انه يكون ملف 10.php يكون في نفس المجلد المتواجد بداخله ملف البي اتش بي المحتوي على كود الجافا حتي لا تضيع خلال عملية البحث عن الطريقة التي يتم بها كتابة مسار الملفات مع ال include مع انها عملية سهلة

كل ما تم كتابته يطبق اذا كنت لاتعني كلمة "رابط" بل كلمة "مسار"

اظن الفرق واضح بين الكلمتين

اذا كنت عايز تستخدم رابط ممكن تستعمل دالة file_get_contents();

file_get_contents('http://www.example.com/10.php');

تم تعديل هذه المشاركة بواسطة shalkam في 17 مارس 2011 في 21:38

#6

تم حل المشكل

كان خطأ في سكريبت المكون لملف 10.php

مت بالتعديل فيه و عمل السكريبت بشكل رائع في متصفح فاير فوكس

شكرا

تم تعديل هذه المشاركة بواسطة nassim في 19 مارس 2011 في 00:34

#7

مشكلة لا يمكن تكرير السكريبت اكثر من مرة في صفحة واحد

هل يوجد حل لهده المشكلة

شكرا

مواضيع مشابهة