اذهب إلى المحتوى

Ahmed Oussama Moumni

الأعضاء
  • المساهمات

    92
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    1

أجوبة بواسطة Ahmed Oussama Moumni

  1. بتاريخ 5 ساعة قال Ahmed Oussama Moumni:

     

    بتاريخ 5 ساعة قال Mustafa Suleiman:

    أرفق مجلد المشروع بعد ضغطه لتفقد المشكلة.

    مرحبا استاذ , مالذي حصل معك ؟؟

  2. بتاريخ 4 دقائق مضت قال Sam Ahw:

    يجب عليك إرفاق جزء من الشيفرة البرمجية التي تظهر فيها المشكلة لنستطيع مساعدتك بشكل أفضل، ولكن بشكل عام في حال كنت تقوم بإظهار النموذج form داخل دالة render، في كل مرة سيتم كتابة محرف ما داخل حقول الإدخال سيتم إعادة بناء المكون ولذلك يفقد التركيز داخل حقل الإدخال، لذلك حاول وضع محتوى الدالة render بشكل مباشر:

    <main id="main" role="main">
        <div className="container-fluid">
            <FormPostSingle />
        </div>
    </main>
    
    تصبح كالتالي
    
    <main id="main" role="main">
        <div>
            <form onSubmit={onSubmit}>
                <InputText name="title" label="Title" placeholder="Enter a title" onChange={onChange} value={valueTitle} />
                <InputSubmit name="Save" />
            </form>
        </div>
    </main>

    أو حاول استدعاء المكونات بالشكل {compName()} بدلاً من <compName /> كالتالي:

    const ex = (pr) => {
       return (
          <input type='text' onChange={onChange} value={value} />
       );
    };
    
    const main = () => (
       <ex pr={true} />
    );
    

    من الأسباب الأخرى لهذه المشكلة أيضاً في حال كنت تستخدم الخاصية key في حقول الإدخال، يجب عليك التحقق منها ومن آلية عملها فسيتم إعادة إنشاء العناصر لكل قيمة مختلفة من الخاصية key وبالتالي أيضاً سيفقد التركيز ضمن حقول الإدخال.

    شكرا لك استاذ , لقد حل المشكل

    • أعجبني 1
  3. السلام عليكم ورحمة اله تعالى وبركاته ، 

    اعمل على تطبيق رياكت بسيط CRUD users، 

    وعند طباعة اول حرف او رقم في حقل الادخال input  يفقد التركيز focus  الخاص به , ثم يجب عليه الضغط عليه مرة اخرى لاعادته ، 

    بحثت كثيرا حول حل للمشكل في عدة مواقع ، وحتى اني استعنت بالChatGpt

     لكن لم يجدي اي حل نفعا ، 

    ارجو من واجهته نفس المشكل ان يخبرني كيف قام بحلها من فضلكم .

    شكرا .

     

    import "./App.css";
    import "bootstrap/dist/css/bootstrap.min.css";
    import Heading from "./Components/Heading";
    import { useState } from "react";
    import Button from "./Components/Button";
    import Table from "./Components/Table";
    import UsersInfo from "./Components/UsersInfo";
    
    function App() {
      const [users, setUsers] = useState([]);
      const [fullname, setFullname] = useState("");
      const [age, setAge] = useState("");
      const [jobtitle, setJobtitle] = useState("");
      const [email, setEmail] = useState("");
    
      const [darkMood, setDarkMood] = useState(false);
      const [addUser, setAddUser] = useState(false);
      const handleToogleMood = () => {
        setDarkMood(!darkMood);
      };
      const handleFullName = (e) => {
        setFullname(e.target.value);
      };
      const handleAge = (e) => {
        setAge(e.target.value);
      };
      const handleJobTitle = (e) => {
        setJobtitle(e.target.value);
      };
      const handleEmail = (e) => {
        setEmail(e.target.value);
      };
      const saveNewUserHandler = () => {
        const newUser = {
          id: Date.now(),
          FullName: fullname,
          Age: age,
          JobTitle: jobtitle,
          Email: email,
        };
        const newUsers = [...users, newUser];
        setUsers(newUsers);
        setAddUser(false);
        setFullname("");
        setAge("");
        setEmail("");
        setJobtitle("");
      };
    
      const AddUser = () => {
        return (
          <div>
            <div className="d-flex justify-content-between">
              <h1 className={`text-left text-danger font-weight-bold`}>
                Add User
              </h1>
              <button
                className="btn btn-primary font-weight-bold"
                onClick={handleToogleMood}
              >
                Toogle Mood
              </button>
            </div>
            <div className="col-6">
              <input
                type="text"
                placeholder="Full Name"
                className="mb-2 form-control"
                value={fullname}
                onChange={handleFullName}
              />
              <input
                type="number"
                placeholder="Age"
                className="mb-2 form-control"
                value={age}
                onChange={handleAge}
              />
              <input
                type="text"
                placeholder="Job Title"
                className="mb-2 form-control"
                value={jobtitle}
                onChange={handleJobTitle}
              />
              <input
                type="email"
                placeholder="Email"
                className="mb-2 form-control"
                value={email}
                onChange={handleEmail}
              />
              <Button type={saveNewUserHandler} text="Save" />
            </div>
          </div>
        );
      };
      const AddNewUserHandler = () => {
        setAddUser(true);
      };
      const UsersPreview = () => {
        return (
          <>
            <Heading
              text="CRUD APP"
              handleToogleMood={handleToogleMood}
              color="danger"
            />
            <Button text="Add new User" type={AddNewUserHandler} />
            <Table darkMood={!darkMood}>
              {users.map((user, index) => {
                return (
                  <UsersInfo
                    key={user.id}
                    index={index + 1}
                    fullName={user.FullName}
                    age={user.Age}
                    job={user.JobTitle}
                    email={user.Email}
                    autoFocus
                  />
                );
              })}
            </Table>
          </>
        );
      };
    
    
    
    
      return (
        <div>
          <div
            className={`${
              !darkMood && "bg-dark"
            }  app d-flex  justify-content-center`}
          >
            <div className="container mt-5">
              {addUser ? <AddUser /> : <UsersPreview />}
            </div>
          </div>
        </div>
      );
    }
    
    export default App;

     

    IMG_20230204_142738.jpg

    • أعجبني 2
  4. بتاريخ 1 دقيقة مضت قال Sam Ahw:

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

    كيف ذلك ؟؟

     

  5. بتاريخ الآن قال Sam Ahw:

    صيغة PDF فقط للطباعة وهي ليست ثابتة، جميع هذه المكتبات المذكورة تتيح لك إمكانية إضافة البيانات بشكل ديناميكي على القالب الذي ستقوم بإضافته مباشرةً قبل الطباعة.

    لا اقصد البيانات بل اريد ان يتمكن المستخدم من التعديل على الوصفة قبل الطباعة 

  6. بتاريخ 1 ساعة قال Sam Ahw:

    يمكنك استعمال إحدى المكتبات التالية لتوليد الملفات بصيغة PDF لسهولة طباعتها:

    html2pdf , pdfkit, jsPDF وجميع هذه المكتبات يمكنك إيجادها ضمن npm ولها توثيق كامل لطريقة الاستخدام سواء ضمن المتصفح (من طرف المستخدم) أو حتى ضمن خادم الويب في حال كان تطبيقك يقوم بالتخاطب مع خادم ويب node.js.

    يمكنك أيضاً الاستفادة من المثال الموجود ضمن هذا السؤال:

    نعم لدي فكرة عن هته المكتبات لكنني احتاح الى التعديل على الوصفة قبل طباعتها احيانا , وبالتالي فان صيغة pdf لا تساعدني , 

     

  7. بتاريخ 10 دقائق مضت قال شرف الدين2:

    يمكنك العمل في المشروع والسؤال عن المشاكل التي تقابلك بشكل مُحدد حتى يتمكن أحد من الإجابة ومساعدتك, في حالة أردت أحد للعمل معك في المشروع يمكنك البحث في أحد المواقع المُختصة كموقع مستقل على سبيل المثال

    شكرا , لقد قمت بتغيير السؤال والاشارة الى المشكل بالتفصيل.

  8. السلام عليكم اصدقاء ,

    اعمل على مشروع تخرج للجامعة 

    اريد رفق ملف مضغوط كبير الحجم على الموقع و حفظه على mongodb بواسطة jQuery و fetch api 

    <form action="./uploid" method="post" id="uploadForm" enctype="multipart/form-data"  class="mx-auto">
                      <div class="input-group mb-3 ">                     
                        <input type="file" id="inpFile" name="inpFile" />                     
                       </div>
                      <input id="uploid" type="submit" class="btn btn-primary"/>
            </form>

     

     

    • أعجبني 1
×
×
  • أضف...