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

الموضوع: الإكسبلورر يواصل إستفزازه لي - كود يعمل على الفايرفوكس ولا يعمل عليه

  1. #1
    عضو نشيط
    تاريخ التسجيل
    Mar 2008
    المشاركات
    283

    Exclamation الإكسبلورر يواصل إستفزازه لي - كود يعمل على الفايرفوكس ولا يعمل عليه



    السلام عليكم وبعد

    الصبح كان مزاجي ممتاز وإشتغلت على برمجة جديدة
    وإحتجت أن أعمل طريقة تمكن الزائر من زيادة حقول الإدخال input
    من نوع text
    مثل مواقع التحميل اللي تحط زر لزيادة رفع الملفات
    وعملتها بالجافا سكربت بدون مشاكل وأكملت عملي لكن تفاجئت أن الإكسبلورر يعطيني Error عند إستدعاء دالة الجافاسكربت !!!

    هذا مثال بنفس طلبي من موقع أجنبي جربته قلت أكيد هذا بيكون أفضل وإحترافي
    وجدت المشكلة كما هي !!
    كود PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <
    html xmlns="http://www.w3.org/1999/xhtml">
    <
    head>
    <
    meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <
    title>Formr</title>
     
    <
    script type="text/javascript">
    var 
    arrInput = new Array(5);
      var 
    arrInputValue = new Array(5);
     
    function 
    addInput() {
      
    arrInput.push(arrInput.length);
      
    arrInputValue.push("");
      
    display();
    }
     
    function 
    display() {
      
    document.getElementById('parah').innerHTML="";
      for (
    intI=5;intI<arrInput.length;intI++) {
        
    document.getElementById('parah').innerHTML+=createInput(arrInput[intI], arrInputValue[intI]);
      }
    }
     
    function 
    saveValue(intId,strValue) {
      
    arrInputValue[intId]=strValue;
    }  
     
    function 
    createInput(id,value) {
        for (
    i=0;i<4;i++) {
          return 
    "<p>Text Box "id +": <input type='text' id='textBox"id +"' onChange='javascript:saveValue("id +",this.value)' value='"value +"' size='20'></p>";
        }
    }
     
    </script>
     
    </head>
    <body>
     
     
        <form action="" method="post" name="form" id="form">
            <p>Text Box 1: <input name="textBox1" type="text" size="20"></p>
            <p>Text Box 2: <input name="textBox2" type="text" size="20"></p>
            <p>Text Box 3: <input name="textBox3" type="text" size="20"></p>
            <p>Text Box 4: <input name="textBox4" type="text" size="20"></p>
        <p id="parah">&nbsp;</p>
            <p><a href="javascript:addInput()">Add more input field(s)</a> &nbsp;&nbsp;&nbsp; <input name="submitBtn" type="submit" value="Submit"></p>
        </form>
    </body>
    </html> 
    هل من طريقة تجعله يعمل مع الإكسبلورر ؟ أم المشكلة من عندي فقط







  2. #2
    عضو فعال
    تاريخ التسجيل
    Jun 2008
    المشاركات
    1,600


    فعلا ً المشكلة هاي مستفزة.

    طلعت المشكلة في الدالة
    createInput طلع الأخ ما بده تحط الحقل داخل فقرة لوحده <p>
    ولا حتى div.

    شيل تاغ الفقرة بيشتغل الكود تمام.

    وعلى فكرة في طريقة ثانية
    وهي استعمال ال execcommands وهي تعمل مع كلا المتصفحين.
    http://forums.devarticles.com/javasc...mand-2832.html

    بس طريقتك احسن







  3. #3
    عضو نشيط
    تاريخ التسجيل
    Mar 2008
    المشاركات
    283


    أخي الكريم أحمد صادق شكرا لك على تواصلك

    المشكلة يا اخي لو شلنا ال p ما يطلع منظم

    وأصلا أنا حاطها في جدول ,,وأريد الصفوف تضاف في نفس الجدول لكن ما تعمل على الاكسبلورر

    وبخصوص الرابط اللي وضعته انا ماني فاهم منه شي ماعندي فكرة عن execcommands






  4. #4
    عضو نشيط
    تاريخ التسجيل
    Mar 2008
    المشاركات
    283


    أنا الآن سويتها بأسهل الطرق لكن المشكلة لو كنت تريد إضافتها في جدول أو في تاق tbody تفشل
    الطريقة السهلة :
    كود PHP:

    document
    .getElementById('add').innerHTML +='<input type="text">'
    لكن لو كان الجلب داخل tbody لا تنجح للأسف






  5. #5
    عضو فعال
    تاريخ التسجيل
    Jun 2008
    المشاركات
    1,600


    وانا كمان كنت بدي اقترح عليك هاي الفكرة وبدون مصفوفة،وعلى فكرة المشكلة مش من تاغ الفقرة لإنه نفع معي:
    كود PHP:
    <html>
    <head>
    <script>
    var x=1;

    function make(){
    document.getElementById('txt').innerHTML += "<p id='par"+x+"'> text box "+x+"  <input type=text name=txt"+x+"></p>";
    x++;
    }

    </script>
    </head>
    <body>
    <a href=javascript:make()>add</a>
    <form method=post action=<?php echo $_SERVER['PHP_SELF'];?>>
    text box 0 <input type=text name=txt0>
    <div id=txt></div>
    <input type=submit>
    </form>
    </body>
    </html>
    <?php
    print_r
    ($_POST);
    ?>
    فحصت الكود على ال php

    بالنسبة لل execcommand
    http://www.moffed.com/community/view...hp?f=35&t=3455
    مصدر بالعربي.

    ممكن ايضًا استعمال ال DOM
    http://bytes.com/topic/javascript/an...nt-appendchild





    التعديل الأخير تم بواسطة ahmad sadiq ; 27-02-2010 الساعة 03:11 PM

  6. #6
    عضو نشيط
    تاريخ التسجيل
    Mar 2008
    المشاركات
    283


    أحمد صادق مثالك الي وضعته نفس ردي الأخير مافي فرق
    http://www.swalif.net/softs/swalif45...9/#post1980204

    بس لو تجربه على جدول HTML لن يعمل

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






  7. #7
    عضو فعال
    تاريخ التسجيل
    Jun 2008
    المشاركات
    1,600


    انا اعرف انه مشابه لما وضعت لكن وقتها كنت كاتب الكود

    على كل حال حليت المشكلة والآن بامكانك استعمال الجداول إذا اردت
    لقد كتبت الكود باستعمال dom وهو يعمل على الفيرفكس والاكسبلورير:
    كود:
    <html>
    <head>
    <title>Sample code - Traversing an HTML Table with JavaScript and DOM Interfaces</title>
    <script>
    
        function make(){
            
            var tbl = document.getElementById('tbl');
            var tbody = document.createElement('tbody');
            var tr = document.createElement("tr");
            var td = document.createElement("td");
            var tdValue = document.createElement('input');
            tdValue.setAttribute("type","text");
            td.appendChild(tdValue);
            tr.appendChild(td);
            tbody.appendChild(tr);
            tbl.appendChild(tbody);
            
        }
    </script>
    </head>
    <body>
        <a href=javascript:make()>add</a>
        <table id=tbl border=1>
            <tr><td><input type=text></td></tr>
        </table>
    </body>
    </html>







  8. #8
    عضو فعال
    تاريخ التسجيل
    Feb 2008
    المشاركات
    1,628


    السلام عليكم

    انا لدي مشكلة واسمحلي اخوي الحربي اطرحها بموضوع لعل الأخ أحمد يساعدني بحلها


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

    www.extra-pc.com


    على فايرفوكس + اكسبلورر 8 + جوجل كروم تظهر بشكل ممتاز


    اما اكسبلورر 7 و 6 تظهر المربعات على اليسار مخربطة


    فهل بإمكانك ارشادي لإصلاح الخطأ فيها لو تكرمت وخصوصا على متصفح اكسبلورر 7





    __________________
    لا سامح الله من ظلمني
    تم بيع الموقع
    العاب
    لعبتي

  9. #9
    عضو فعال
    تاريخ التسجيل
    Feb 2008
    المشاركات
    1,628


    حللت المشكلة بنفسي شكرا لكما





    __________________
    لا سامح الله من ظلمني
    تم بيع الموقع
    العاب
    لعبتي

  10. #10
    عضو نشيط
    تاريخ التسجيل
    Mar 2008
    المشاركات
    283


    انا اعرف انه مشابه لما وضعت لكن وقتها كنت كاتب الكود

    على كل حال حليت المشكلة والآن بامكانك استعمال الجداول إذا اردت
    لقد كتبت الكود باستعمال dom وهو يعمل على الفيرفكس والاكسبلورير:
    كود:
    <html>
    <head>
    <title>Sample code - Traversing an HTML Table with JavaScript and DOM Interfaces</title>
    <script>
    
        function make(){
            
            var tbl = document.getElementById('tbl');
            var tbody = document.createElement('tbody');
            var tr = document.createElement("tr");
            var td = document.createElement("td");
            var tdValue = document.createElement('input');
            tdValue.setAttribute("type","text");
            td.appendChild(tdValue);
            tr.appendChild(td);
            tbody.appendChild(tr);
            tbl.appendChild(tbody);
            
        }
    </script>
    </head>
    <body>
        <a href=javascript:make()>add</a>
        <table id=tbl border=1>
            <tr><td><input type=text></td></tr>
        </table>
    </body>
    </html>

    رائع والله أخ أحمد والله شغل ممتاز

    بس في مشكلة صغيرة . الإنبوت اللي يضاف بواسطة الـ DOM

    يكون بدون إسم !! ما عرفت أعدل على كودك أبداً

    أنا أريده يكون هكذا على سبيل المثال:
    كود PHP:
    <input type="text" name="t[]">
    <
    input type="text" name="t[]">
    <
    input type="text" name="t[]"
    لكي أتعامل معه بالـ php على إنه مصفوفة Array

    هل من طريقة ؟






  11. #11
    عضو فعال
    تاريخ التسجيل
    Jun 2008
    المشاركات
    1,600


    أخ new person تصميم موقعك جميل جدًا ومسلي في نفس الوقت..


    يمكن تغيير الاسم عن طريق الدالة setAttribute
    كالتالي:

    كود:
    txt.setAttribute("name","txt1");
    أو عن طريق ال data member (المتغير) الذي يغير الاسم وهو name

    كود:
    txt.name="txt1";
    على كل حال قد عدلت الكود لكي يعمل مع النموذج واضفت خاصية ازالة الحقول التي لا ترغب بها،
    يمكن التعامل مع الحقول في ال php عن طريق المصفوفة $_POST


    كود PHP:
    <html>
    <head>
    <title>Sample code - Traversing an HTML Table with JavaScript and DOM Interfaces</title>
    <script>
        var x=2;
        function make(){
            
            var tbl = document.getElementById('tbl');
            var tbody = document.createElement('tbody');
            var tr = document.createElement("tr");
            var td = document.createElement("td");
            
            var tdName = document.createElement("td");
            tdName.appendChild(document.createTextNode("Text"+x));
            var tdValue = document.createElement('input');
            var tdRemove = document.createElement("td");
            
            var removeLink = document.createElement("a");
            removeLink.innerHTML = "remove";
            removeLink.href = "javascript:remove('txt"+x+"')";
            
            
            tdRemove.appendChild(removeLink);
            tdValue.setAttribute("type","text");
            tdValue.setAttribute("name","txt"+x);
            tdValue.setAttribute("id","txt"+x);
            
            td.appendChild(tdValue);
            tr.appendChild(tdName);
            tr.appendChild(td);
            tr.appendChild(tdRemove);
            tbody.appendChild(tr);
            tbl.appendChild(tbody);
            x++;
            
        }
        
        function remove(id){
            var element = document.getElementById(id);
            var tbodyParent = element.parentNode.parentNode.parentNode;
            document.getElementById('tbl').removeChild(tbodyParent);
        }
    </script>
    </head>
    <body>
        <a href=javascript:make()>add</a>
        <form method=post action = <?php echo  $_SERVER['php_self']?>>
        <table id=tbl border=1>
            <tr><td>Text 1</td><td><input type=text name=txt1 id=txt1></td><td></td></tr>
        </table>
        <input type=submit value=submit>
        </form>
    </body>
    </html>
    <?php
    print_r
    ($_POST);
    ?>







  12. #12
    عضو نشيط
    تاريخ التسجيل
    Mar 2008
    المشاركات
    283


    أحسن الله إليك أخي أحمد صادق

    وبارك فيك










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

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

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