• 0

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

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

يوجد: لدي جدول به 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>

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 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
1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 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 بدون الفورم أو بدون هذه المشاكل!
وأعتذر عن الاسئلة الكثيرة.

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

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن