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

كيف يمكن تعيين class name متغير داخل jQuery

محمد المصري12

السؤال

سلام عليكم

اعتذر لو كان عنوان السؤال غير واضح و للاخوة المدربين تعديله بما يترائى لهم

عندي كود كالتالي 

<?php
foreach ($threads as $thread){
?>
    <form class="<?php echo $thread['thread_id'] ;?>" action="javascript:added(); return false;" novalidate>

زي ما حضراتكم ملاحظين ال class name الخاصة بالفورم متغيرة بتاخد بياناتها من حقول في الداتابيز

ده جزء من كود jQuery 

// Submit Threads
(function() {

'use strict';

window.addEventListener('load', function() {

var forms = document.getElementsByClassName('thread');
  				^^^^^^^^^^

ازاي اقدر اخلي ال classname هنا يكون نفس المتغير اللي انا مخصصه للنموذج ده؟

 

شكرا جدا

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

Recommended Posts

  • 1
بتاريخ 18 دقائق مضت قال محمد المصري5:

الفكرة انه النموذج بيتكرر حسب احتياج المستخدم و اني اربطه ب id او كلاس ثابت هايعمل التغييرات بدون مراعاة المتغيرات

 

مثال 

 

عندي جدول مكون من 4 خانات 

كود الخيط - الطول بالمتر- السعر - المجموع 

ثم زر تأكيد

عندي في الداتابيز 3 انواع خيوط ، كود 1 و 2 و 3 

 

يبقى هاتطلعلي بالشكل ده

كود الخيط - الطول بالمتر - السعر - المجموع

    1                                                        تأكيد

    2                                                        تأكيد

    3                                                        تأكيد

المفترض ان المستخدم لما يدخل طول الممتر و السعر و المجموع للخيط رقم 1 

الداتا اللي تدخل تدخل للخيط رقم 1 بس ، لكن اللي بيحصل انها يتدخل لكل الانواع الموجودة

و ده لان ال classname الخاص بالفورم ثابت و ليس متغير

فكرت اخلي اسمه نفس قيمة ال كود عشان لما يتكرر يتغير مع المستخدم و يبقى unique و بكده تتحل المشكلة

عشان كده عاوز ال id او الclass الخاص بالفورم يبقى متغير مش ثابت

من الممنك أن تقوم باستخدام الخاصية data مع العنصر form , فمثلا أن يكون الاسم data-test كالتالي

<form data-test="<?php echo $thread['thread_id'] ;?>" class="test" action="javascript:added(); return false;" novalidate>

ثم في كود jquery 

$('.test').on('click', function (event) {
	var id=$(this).data('test');
});

في كود jquery استخدمت الكائن event الذي يمتلك معلومات عن العنصر الذي تم الضغط عليه , من المعلومات حصلت على قيمة الخاصية data-test , قيمة الخاصية data-test تحتوي على id الخاص ب thread الذي تم الضغط عليه , وبناء عليه يمكنك القيام بالعمليات المختلفة لعنصر واحد فقط ,
هناك طريقة أخرى , نقوم بعمل حدث على العنصر form اسمه onClick ونقوم بتمرير معاملات لهذا الحدث كالتالي 

<form onclick="testFunction('<?php echo $thread['thread_id'] ;?>')" class="test" action="javascript:added(); return false;" novalidate>

في الحدث onClick يقوم بتنفيذ الدالة التي اسمه testFunction ومررت الى الدالة معامل واحد وهو معرف id الخاص  ب thread , ثم في كود جافاسكربت يمكنك الحصول على المعرف id الذي مررته كالتالي

        function testFunction(id) {
            console.log(id)

        }

سوف يتم طباعة المعرف الذي تمريره , يمكنك القيام بأي عملية تريدها

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

  • 0

حاول أن تعطي عنصر form خاصية id , ثم تستطيع الحصول على العنصر من خلال خاصية id , كالتالي:
كود php

<form id="test" class="<?php echo $thread['thread_id'] ;?>" action="javascript:added(); return false;" novalidate>

كود jQuery

// Submit Threads
(function() {

'use strict';

window.addEventListener('load', function() {

var forms = document.getElementById('test');

اذا لم تقصد ذلك , نحتاج لتوضيح أكثر لكي نساعدك جيدا
 

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

  • 0
بتاريخ 3 دقائق مضت قال محمد أبو عواد:

حاول أن تعطي عنصر form خاصية id , ثم تستطيع الحصول على العنصر من خلال خاصية id , كالتالي:
كود php


<form id="test" class="<?php echo $thread['thread_id'] ;?>" action="javascript:added(); return false;" novalidate>

كود jQuery


// Submit Threads
(function() {

'use strict';

window.addEventListener('load', function() {

var forms = document.getElementById('test');

اذا لم تقصد ذلك , نحتاج لتوضيح أكثر لكي نساعدك جيدا
 

الفكرة انه النموذج بيتكرر حسب احتياج المستخدم و اني اربطه ب id او كلاس ثابت هايعمل التغييرات بدون مراعاة المتغيرات

 

مثال 

 

عندي جدول مكون من 4 خانات 

كود الخيط - الطول بالمتر- السعر - المجموع 

ثم زر تأكيد

عندي في الداتابيز 3 انواع خيوط ، كود 1 و 2 و 3 

 

يبقى هاتطلعلي بالشكل ده

كود الخيط - الطول بالمتر - السعر - المجموع

    1                                                        تأكيد

    2                                                        تأكيد

    3                                                        تأكيد

المفترض ان المستخدم لما يدخل طول الممتر و السعر و المجموع للخيط رقم 1 

الداتا اللي تدخل تدخل للخيط رقم 1 بس ، لكن اللي بيحصل انها يتدخل لكل الانواع الموجودة

و ده لان ال classname الخاص بالفورم ثابت و ليس متغير

فكرت اخلي اسمه نفس قيمة ال كود عشان لما يتكرر يتغير مع المستخدم و يبقى unique و بكده تتحل المشكلة

عشان كده عاوز ال id او الclass الخاص بالفورم يبقى متغير مش ثابت

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

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...