النتائج 1 إلى 4 من 4

الموضوع: كيف اعمل الـComment submit بواسطه الـAJAX

  1. #1

    Unhappy كيف اعمل الـComment submit بواسطه الـAJAX



    السلام عليكم

    بعد طول انتظار اتمنى ان اجد الحل واملي كر فيكم وبالاخص بالاخ ابراهيم

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

    سكربت موقعي Cute News يمكن تحميله http://cutephp.com

    استخدمت هذه الطريقه التي اخذتها من احد المواقع الاجنبيه على ما اظن

    اولا اضفت

    كود:
    <script type="text/javascript">
    
    var img = '<p align="center"><img src="wite.gif"></p>';
    var $msg = "<div align='center' style='background-color: #000000'><font face='Tahoma' color='#FF9900'>يرجى الانتظار ...جاري احضار البيانات</font></div>";
    
    var bustcachevar=1 //bust potential caching of external pages after initial request? (1=yes, 0=no)
    var loadedobjects=""
    var bustcacheparameter=""
    
    function include(url, containerid){
    document.getElementById(containerid).innerHTML = img+$msg;
    var page_request = false
    if (window.XMLHttpRequest) // if Mozilla, Safari etc
    page_request = new XMLHttpRequest()
    else if (window.ActiveXObject){ // if IE
    try {
    page_request = new ActiveXObject("Msxml2.XMLHTTP")
    }
    catch (e){
    try{
    page_request = new ActiveXObject("Microsoft.XMLHTTP")
    }
    catch (e){}
    }
    }
    else
    return false
    page_request.onreadystatechange=function(){
    loadpage(page_request, containerid)
    }
    if (bustcachevar) //if bust caching of external page
    bustcacheparameter=(url.indexOf("?")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime()
    page_request.open('GET', url+bustcacheparameter, true)
    page_request.send(null)
    }
    
    function loadpage(page_request, containerid){
    if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1))
    document.getElementById(containerid).innerHTML=page_request.responseText
    }
    
    function loadobjs(){
    if (!document.getElementById)
    return
    for (i=0; i<arguments.length; i++){
    var file=arguments[i]
    var fileref=""
    if (loadedobjects.indexOf(file)==-1){ //Check to see if this object has not already been added to page before proceeding
    if (file.indexOf(".js")!=-1){ //If object is a js file
    fileref=document.createElement('script')
    fileref.setAttribute("type","text/javascript");
    fileref.setAttribute("src", file);
    }
    else if (file.indexOf(".css")!=-1){ //If object is a css file
    fileref=document.createElement("link")
    fileref.setAttribute("rel", "stylesheet");
    fileref.setAttribute("type", "text/css");
    fileref.setAttribute("href", file);
    }
    }
    if (fileref!=""){
    document.getElementsByTagName("head").item(0).appendChild(fileref)
    loadedobjects+=file+" " //Remember this object as being already added to page
    }
    }
    }
    
    </script>
    بعدها استدعيت الصفحات لمكان المخصص بتعريف

    <div id="contentarea">

    لل td

    ووضعت كود الروابط هكذا

    <a href="javascript:;" onclick='include("test1.php","contentarea")'>page</a>

    الكود الذي بملف test1.php هوه كود خاص بالسكربت الذي استخدمه لاحضار الاخبار بالــinclude

    والكود هو

    كود:
    <?PHP
    header('(anti-spam-(anti-spam-content-type:)) text/html; charset=windows-1256');
    
    if($_POST['do'] == "search" or $_GET['dosearch'] == "yes"){ $subaction = "search"; $dosearch = "yes"; include("./news/search.php"); }
    elseif($_GET['do'] == "archives"){ include("./news/show_archives.php"); }
    else{ $category = "6"; $number = "2"; include("./news/show_news.php"); }
    
    ?>
    طبعا لم استطع تحويل هذا الـ include الى الاجاكس فأستخدمت هذه الطريقه

    وهي شغاله تمام وقمت بتعديل كل روابط السكربت والحمد لله
    الان المشكله في الرد حيث انه لا يعمل عند الضغط على الــsubmit مجرد تفتح صفحه خاليه بدون اضافه شي والسبب واضح يمكن

    الان كيف يمكن جعل الـsubmit يرسل بدون ان يفتح الصفحه من جديد حيث انا اعتقد ان بمجرد تفعيلي هذا الامر ستحل المشكله

    وهذا كود المحرر او القالب أبسط اشكاله (الاصلي)

    كود:
    <table border="0" width="370" cellspacing="0" cellpadding="0">
        <tr>
          <td width="60">Name:</td>
          <td><input type="text" name="name"></td>
        </tr>
        <tr>
          <td>E-mail:</td>
          <td><input type="text" name="mail"> (optional)</td>
        </tr>
        <tr>
          <td>Smile:</td>
          <td>{smilies}</td>
        </tr>
        <tr>
          <td colspan="2">
          <textarea cols="40" rows="6" id=commentsbox name="comments"></textarea><br />
          <input type="submit" name="submit" value="Add My Comment">
          <input type=checkbox name=CNremember id=CNremember value=1><label for=CNremember> Remember Me</label> |
    <a href="javascript:CNforget();">Forget Me</a>
          </td>
        </tr>
    </table>
    اسف على الاطاله واتمنى مساعدتي اضفت الطريقه للتوضيح فقط ارجو ان اجد الحل انتم اخر املي









  2. أسهل طريقة للتعامل مع النمازج (forms) لتمرير المدخلات بواسطة تقنية الاجاكس
    jQuery Form Plugin
    طبعا هذا jquery framework
    يمكنكم استخدام الفورم هذا في اضافة التعليقات او اي عملية ارسال للمدخلات ...





    __________________
    ################################ PHP.SD ########
    We're not first,But We're the BEST

    ##

  3. #3


    شكرا لك لكني لم اعرف كيف اطبقها على قالب الرد الخاص بي

    او حتى اشغل المثال اصلا D: ربما لاني لم احصل على الملفين
    jquery.js
    و
    form.js
    حيث حصلت ع واحد يحمل الاسمين D:
    http://jqueryjs.googlecode.com/svn/t...jquery.form.js
    من قسم الداون لود ياريت لو هذه الطريقه تنفع اي احد يعرف يطبقلياها على القالب

    المشكله اني قلت لزوار الموقع اني ححول الموقع للاجاكس وهم مستنين D: لم اعرف
    ان هناك مشكله تنتظرني بالردود






  4. #4


    يا اخوان وينكم ؟ هل هناك شي مو واضح ؟










ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا | اضافة محتوى فريد لموقعك