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

كيف أرسل قيمة أكثر من checkbox ضمن جدول (html - php)؟

علي أحمد-2

السؤال

السلام عليكم،

يوجد: لدي جدول به 5 أعمدة وفي العمود الرابع لدي Checkbox..

الكود: 

<table class="admin-article-table">
  <thead>
    <tr>
      <th width="41%">Article Title</th>
      <th width="18%">Category</th>
      <th width="10%">By</th>
      <th width="10%">Publish <input id="checkAll" type="checkbox"></th>
      <th width="21%">Options</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Text</td>
      <td class="empty">No Declared Category</td>
      <td>The Admin</td>
      <td>
      	<input class="chk" name="PubOne" type="checkbox" value="90"></td> <!-- value is imported from db --> 
      <td>
        <a class="option-del" href="#">Delete</a>
        <a class="option" href="#">Unapprove</a><br>
        <form action="?do=updateCat&fileid=90" method="post">
          <select name="cats">
            <option title="delete the article from its chosen category"
            value="0">
              Make as Uncategorized
            </option>
          </select>
          <input type="submit" value="Update">
        </form>
      </td>
    </tr>
  </tbody>
  <tbody>
    <tr>
      <td colspan="3"></td>
      <td>
      	<input type="submit" value="Publish">
    	</td>
      <td></td>
    </tr>
  </tbody>
</table>

صورة من الجدول:

pic.png

أريد عندما يتم اختيار الCheckboxes سواء كان واحد أم اثنين أم أكثر ثم يتم الضغط على Publish يتم طباعة الـvalues الخاصة بهم بنفس الصفحة.

طبعًـا الvalues أنا أجلبها من قاعدة البيانات بالــPHP..

طبعاً أنا اعلم أن هنالك طريقة الـform ، ولكن .. الذي أستطيع فعله هو وضع الـinput=checkbox داخل الـform tag ولكن بالنسبة لزر الــPublish يجب أن يكون بالأسفل في <tr> خاص به ، إذا وضعته تحت الcheckbox مباشرة سيتم تكراره في كل مرة تحت الcheckbox .. وأنا لا أريد ذلك..

أتمنى أن فكرتي وضحت..

بعد أن يتم إختيار الCheckboxes سيتم إرسال القيم الخاصة بالــCheckboxes إلى نفس الصفحة ثم طباعتهم عن طريق الــForm أو أي طريقة أخرى أستطيع أخذ القيم بها وإدخالها في الـDatabase لاحقًـا بدون مشاكل.

شكراً على المساعدة كثيراً..

وأعتذر عن الاسئلة المعقدة فأنا مبتدئ ولله الحمد.

شكراً من القلب :)   3>

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

Recommended Posts

  • 2

نعم يمكن، وذلك بالاعتماد على جافاسكربت (الحل بالإعتماد على مكتبة jQuery) وهي كالتالي :

عند نقر على حقل Checkbox يتم اطلاق الحدث الآتي :

$("input[name='PubOne']").on('click', function() {
  var fields = $("input[name='PubOne']").val();
  $.each( fields, function( i, field ) {
    $("input[name='PubID']").val($("input[name='PubID']").val() + field.value + ",");        
  });  
});

ثم قم بإضافة حقل جديدة بنفس الـ Form الخاص بالزر :

<tbody>
  <tr>
    <td colspan="3"></td>
    <td>
      <form action="URL" method="POST">
        <input type="text" name="PubID" hidden/>
        <input type="submit" value="Publish">
      </form>
    </td>
  </tr>
</tbody>

الذي سيحصل هو جمع الـ ID من checkbox التي تم اختيارها ووضعها في حقل جديد ضمن Form الخاص بالزر، وبذلك يمكن إرسال الـ IDs بدون توسيع Form على كل جدول .

تم التعديل في بواسطة Nibras NIO
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

قم بجعل الحقل يقبل التعدد بوضع [] مع اسم الحقل :

<input class="chk" name="PubOne[]" type="checkbox" value="90">

ثم قم بجعل الجدول كله ضمن Form وليس جعل الـ Form ضمنه .

<form action="?do=updateCat" method="post">
  <table>....</table>
</form>

لا تعتمد على الرابط لتحديث البيانات بل على ما تم اختياره عبر حقل checkbox، ويمكنك ذلك بعمل Loop في صفحة php التي يرسل عليها الـ Form لإضافة تحديث عليها أو يمكنك إستخدام خاصية Where In في SQL لتحديث بأمر واحد على كل الصفوف المختارة .

تم التعديل في بواسطة Nibras NIO
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

@Nibras NIO

أخي للأسف لا يمكن تطبيق هذه الطريقة (طريقة الform) لأني لدي أكثر من فورم آخر في الصفحة لإرسال بيانات أخرى ولكنني لم أرفق ذلك مع الكود كاملاً لكي لا أسبب تشتت في قراءة الكود..

حاولت عمل جدول آخر (table tag) ثم وضع فيه عناصر الـCheckboxes ولكن الأمر أصبح أكثر سوءً.
هل هنالك طريقة أستطيع بها معرفة الSelected Checkboxes بدون الفورم أو بدون هذه المشاكل!
وأعتذر عن الاسئلة الكثيرة.

شكراً كثيراً :)

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

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...