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

رفع صورة إلى خادم php بناء على select input

Omer Amad

السؤال

احتاج الى كود.... فيه select فيه خيارات اثنين الخيار الأول نعم والخيار الثاني لا... لما يتم اختيار نعم يظهر حقل ارسال صورة... ولما يختار لا لايظهر شيء 

علمآ خيارات نعم او لا  اريد ان تظهر في اسم العامود الخاص بها هوا book1

واسم العامود الذي تظهر فيها صوره skool2

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

الأمر بسيط ستحتاج فقط إلى إستماع إلى حدث التغير change ومن ثم تمرير الدالة التي تريد تنفيذها وهذه الدالة تتحقق من الخيار الذى تم إختياره ومن ثم إخفاء أو إظهار حقل الصورة:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script>
function toggleImageField() {
    var selectBox = document.getElementById("selectBox");
    var imageField = document.getElementById("imageField");

    if (selectBox.value === "نعم") {
        imageField.style.display = "block";
    } else {
        imageField.style.display = "none";
    }
}
</script>
</head>
<body>

<form action="upload.php" method="post">
    <label for="selectBox">هل ترغب في إضافة صورة؟</label>
    <select id="selectBox" name="option" onchange="toggleImageField()">
        <option value="">اختر...</option>
        <option value="نعم">نعم</option>
        <option value="لا">لا</option>
    </select>
    <br><br>
    <div id="imageField" style="display: none;">
        <label for="image">حقل إرسال الصورة:</label>
        <input type="file" id="image" name="image">
    </div>
    <br><br>
    <input type="submit" value="إرسال">
</form>

</body>
</html>

والآن ملف upload.php :

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $option = $_POST["option"];
    $servername = "localhost";
    $username = "root";
    $password = "";
    $dbname = "db_name";

    $conn = new mysqli($servername, $username, $password, $dbname);

    if ($conn->connect_error) {
        die("فشل الاتصال: " . $conn->connect_error);
    }

    if ($option === "نعم") {
        if (isset($_FILES["image"])) {
            $file_name = $_FILES["image"]["name"];
            $file_tmp = $_FILES["image"]["tmp_name"];
            move_uploaded_file($file_tmp, "uploads/" . $file_name);


            $sql = "INSERT INTO table_name (book1,book2) VALUES ('$option','$targetFile')";

            if ($conn->query($sql) === TRUE) {
                echo "تم رفع الصورة بنجاح";
            } else {
                echo "عذراً، حدث خطأ أثناء رفع الصورة.";
                die();
            }
            $conn->close();
        }
    }
    else {
        $sql = "INSERT INTO table_name (book1) VALUES ('$option')";

        if ($conn->query($sql) === TRUE) {
            echo "تم الإضافة بنجاح ";
        } else {
            echo "عذراً، حدث خطأ أثناء الإضافة.";
            die();
        }
        $conn->close();
    }
}

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

ستحتاج جافاسكريبت لتنفيذ ذلك من أجل إظهار وإخفاء الحقل من خلال حدث change:

<!DOCTYPE html>
<html>
<head>
<script>
    document.addEventListener('DOMContentLoaded', function() {
      var selectElement = document.getElementById("book1");
      var imageUploadDiv = document.getElementById("imageUpload");

      selectElement.addEventListener('change', function() {
        if (selectElement.value === "yes") {
          imageUploadDiv.style.display = "block";
        } else {
          imageUploadDiv.style.display = "none";
        }
      });
    });
  </script>
</head>
<body>

<form method="post" enctype="multipart/form-data">
  <label for="book1">هل تريد إرسال صورة؟</label>
  <select id="book1" name="book1">
    <option value="">اختر</option>
    <option value="yes">نعم</option>
    <option value="no">لا</option>
  </select>

  <div id="imageUpload" style="display:none;">
    <label for="skool2">اختر صورة:</label>
    <input type="file" name="skool2" id="skool2">
  </div>

  <input type="submit" value="إرسال">
</form>

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
  if ($_POST["book1"] == "yes") {

    if (isset($_FILES["skool2"]) && $_FILES["skool2"]["error"] == 0) {
      $target_dir = "uploads/";
      $target_file = $target_dir . basename($_FILES["skool2"]["name"]);
      
      if (move_uploaded_file($_FILES["skool2"]["tmp_name"], $target_file)) {
        echo "تم تحميل الصورة بنجاح.";
      } else {
        echo "حدث خطأ أثناء تحميل الصورة.";
      }
    } else {
      echo "يرجى اختيار صورة لتحميلها.";
    }
  } else {
    echo "لم يتم اختيار تحميل صورة.";
  }
}
?>

</body>
</html>

 

Snag_1497d5b8.png

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 36 دقائق مضت قال محمد عاطف17:

لماذا تريد 5 حقول مع 5 إختيارات ؟! إذا كان فقط سيتم رفع ملف واحد وإختيار خيار واحد حيث أن هذا النظام خاطئ وليس جيدا من حيث قاعدة البيانات التي تحجز أعمدة فارغة دون داعي ومن حيث كتابة أكواد كثيرة جدا ومستقبلا إذا أردت إضافة خيار جديد سيتوجب عليك إضافة عمود في قاعدة البيانات مع إضافة خيار أخر وحقل أخر و إضافة رفع الملف الجديد في الخادم .

يمكنك إضافة فقط عمودين في قاعدة البيانات عمود خاص بالإختيار الذى تم إختياره وعمود أخر بمكان الصورة . أى مثلا عمود option مع عمود hoss .

والآن هذا ملف الواجهة الأمامية html :

<!DOCTYPE html>
<html lang="ar">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
    <form action="upload.php" method="post" enctype="multipart/form-data">
        <label for="option">من فضلك إختر من التالي:</label>
        <select id="option" name="option">
            <option value="">اختر...</option>
            <option value="1">الخيار الأول</option>
            <option value="2">الخيار الثاني</option>
          <option value="3">الخيار الثاني</option>
          <option value="4">الخيار الثاني</option>
          <option value="5">الخيار الثاني</option>
        </select>

        <div>
            <label for="image">حقل الصورة:</label>
            <input type="file" name="image" accept="image/*">
        </div>

        <button type="submit">إرسال</button>
    </form>
</body>
</html>

وهذا هو كود الواجهة الخلفية upload.php :

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $option = $_POST["option"];
    if ($option !in_array($option, [1,2,3,4,5])) {
        echo "من فضلك إختر خيار صحيح";
        die();
    }
  
    $path = "img". $option ."/";
    $targetFile = $path . basename($_FILES["image"]["name"]);
 
    // الاتصال بقاعدة البيانات
    $servername = "localhost";
    $username = "root";
    $password = "";
    $dbname = "db_name";

    $conn = new mysqli($servername, $username, $password, $dbname);

    if ($conn->connect_error) {
        die("فشل الاتصال: " . $conn->connect_error);
    }

   
    if (move_uploaded_file($_FILES["image"]["tmp_name"], $targetFile)) {
        $sql = "INSERT INTO table_name (hoss$option) VALUES ('$targetFile')";

        if ($conn->query($sql) === TRUE) {
            echo "تم رفع الملف بنجاح";
        } else {
            echo "عذراً، حدث خطأ أثناء رفع الملف.";
            die();
        }
        $conn->close();
    } else {
        echo "عذراً، حدث خطأ أثناء رفع الملف.";
    }
}

 

 

بتاريخ 7 دقائق مضت قال محمد عاطف17:

الأمر بسيط ستحتاج فقط إلى إستماع إلى حدث التغير change ومن ثم تمرير الدالة التي تريد تنفيذها وهذه الدالة تتحقق من الخيار الذى تم إختياره ومن ثم إخفاء أو إظهار حقل الصورة:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script>
function toggleImageField() {
    var selectBox = document.getElementById("selectBox");
    var imageField = document.getElementById("imageField");

    if (selectBox.value === "نعم") {
        imageField.style.display = "block";
    } else {
        imageField.style.display = "none";
    }
}
</script>
</head>
<body>

<form action="upload.php" method="post">
    <label for="selectBox">هل ترغب في إضافة صورة؟</label>
    <select id="selectBox" name="option" onchange="toggleImageField()">
        <option value="">اختر...</option>
        <option value="نعم">نعم</option>
        <option value="لا">لا</option>
    </select>
    <br><br>
    <div id="imageField" style="display: none;">
        <label for="image">حقل إرسال الصورة:</label>
        <input type="file" id="image" name="image">
    </div>
    <br><br>
    <input type="submit" value="إرسال">
</form>

</body>
</html>

والآن ملف upload.php :

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $option = $_POST["option"];
    $servername = "localhost";
    $username = "root";
    $password = "";
    $dbname = "db_name";

    $conn = new mysqli($servername, $username, $password, $dbname);

    if ($conn->connect_error) {
        die("فشل الاتصال: " . $conn->connect_error);
    }

    if ($option === "نعم") {
        if (isset($_FILES["image"])) {
            $file_name = $_FILES["image"]["name"];
            $file_tmp = $_FILES["image"]["tmp_name"];
            move_uploaded_file($file_tmp, "uploads/" . $file_name);


            $sql = "INSERT INTO table_name (book1,book2) VALUES ('$option','$targetFile')";

            if ($conn->query($sql) === TRUE) {
                echo "تم رفع الصورة بنجاح";
            } else {
                echo "عذراً، حدث خطأ أثناء رفع الصورة.";
                die();
            }
            $conn->close();
        }
    }
    else {
        $sql = "INSERT INTO table_name (book1) VALUES ('$option')";

        if ($conn->query($sql) === TRUE) {
            echo "تم الإضافة بنجاح ";
        } else {
            echo "عذراً، حدث خطأ أثناء الإضافة.";
            die();
        }
        $conn->close();
    }
}

 

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

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ الآن قال Mohammed Maree:

عذرآ ربما قد ازعجتك في الأسئلة على العموم شكرآ جزيلا 

في حال كان في الأكاديمية هنا فالأمر ممنوع مشروع التخرج يتم إتمامه من قبلك بدون مساعدة.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 3 دقائق مضت قال Mustafa Suleiman:

في حال كان في الأكاديمية هنا فالأمر ممنوع مشروع التخرج يتم إتمامه من قبلك بدون مساعدة.

لا اخي مشروع في الجامعة في مصر وليس في الأكاديمية 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 6 دقائق مضت قال Mohammed Maree:

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

لقد أجبناك سابقا  على مثل هذا السؤال وأرى أن هذا ليس بالشئ الجيد لك حيث أنك هكذا لن تتعلم أي شئ فمن المفترض أن هذه أساسيات لغة php فإذا لم تستطع إنشاء مثل هذا الأشياء البسيطة لن تحقق شيئا في المشاريع الكبيرة .

لذلك نصيحتي لك هي فهم الأفكار والأساسيات ومحاولة التطبيق وإذا لم يعمل يمكنك السؤال بعد المحاولات بنفسك ولكن طريقة نسخ الأكواد هذه فلن تفيدك بأى شئ .

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 9 دقائق مضت قال محمد عاطف17:

لقد أجبناك سابقا  على مثل هذا السؤال وأرى أن هذا ليس بالشئ الجيد لك حيث أنك هكذا لن تتعلم أي شئ فمن المفترض أن هذه أساسيات لغة php فإذا لم تستطع إنشاء مثل هذا الأشياء البسيطة لن تحقق شيئا في المشاريع الكبيرة .

لذلك نصيحتي لك هي فهم الأفكار والأساسيات ومحاولة التطبيق وإذا لم يعمل يمكنك السؤال بعد المحاولات بنفسك ولكن طريقة نسخ الأكواد هذه فلن تفيدك بأى شئ .

عذرآ على الإزعاج ارجوا حذف جميع الأسئلة الذي طرحتها مع تحياتي وسلامي 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...