/ / कब्र नियंत्रक से चेकबॉक्स मूल्य प्राप्त करें - जावास्क्रिप्ट, एचटीएमएल, अनाज, ग्रूवी, जीएसपी

Grails नियंत्रक से चेकबॉक्स मूल्य प्राप्त करें - जावास्क्रिप्ट, एचटीएमएल, grails, groovy, जीएसपी

मेरे पास एक ग्रेल्स प्रोजेक्ट है जहाँ मुझे उन फ़ील्ड्स का चयन करना होगा जिन्हें मैं हटाना चाहता हूँ और जब मैं "डिलीट" पर क्लिक करता हूँ तो मुझे सभी चयनित वस्तुओं को हटाने के लिए एक फ़ंक्शन की आवश्यकता होती है:

HTML कोड:

<form name="bookForm" action="list" method="post">
....
<g:link controller="book" action="delete">Delete</g:link>
....
....
<g:checkBox id="select_all" name="select_all" value="" onclick="selectAll();" />
....
<g:each in="${bookList}" status="i" var="bookInstance">
<tr class="${(i % 2) == 0 ? "odd" : "even"}">
<td><g:checkBox id="${bookInstance.id}" name="delete_checkbox" value="" /></td>
</tr>
</g:each>
....
</form>

जावास्क्रिप्ट कोड:

<script type="text/javascript">
function selectAll(){//this function is used to check or uncheck all checkboxes
var select = document.getElementById("select_all");
var checkboxes = document.forms["bookForm"].elements["delete_checkbox"];
if (select.checked){
for (i = 0; i < checkboxes.length; i++) checkboxes[i].checked = true;
}else{
for (i = 0; i < checkboxes.length; i++) checkboxes[i].checked = false;
}
}//this function works fine
</script>

मुसीबत:

मुझे सूची gsp में सभी चेकबॉक्स की जांच करने के लिए कार्रवाई की आवश्यकता है, और यदि वे चेक किए गए हैं, तो उनकी आईडी लें और आईडी द्वारा रिकॉर्ड हटा दें।

क्या मैं या तो ग्रूवी या जावास्क्रिप्ट द्वारा कर सकता हूं?

उत्तर:

जवाब के लिए 0 № 1

अपने चेकबॉक्स को पुन: लिखें:

<g:checkBox id="delete_checkbox" name="delete_checkbox" value="${bookInstance.id}" />

इसलिए, जब आप सबमिट करते हैं, तो आपको "आईडी की एक सरणी मिल जाएगी।" _delete_checkbox या delete_checkbox तुम्हारे अंदर परमों नक्शा। यह देखने के लिए कि आप क्या कर रहे हैं, आप कार्रवाई के अंदर अपने पारमों को प्रिंट करने का प्रयास कर सकते हैं।

println params

आप उपयोग करके वांछित सरणी प्राप्त कर सकते हैं params["nameOfTheAttribute"]। एक बार जब आपके पास आईडी की सरणी होती है, तो उस पर पुनरावृति करें और उन सभी को हटा दें।


उत्तर № 2 के लिए 1

आपके कोड के साथ समस्या यह है कि आप चेकबॉक्स के लिए मान निर्धारित करते हैं = ""। यह गलत है, क्योंकि मूल्य वह है जो सर्वर को सबमिट किया जाता है।

आपको इसे निम्नलिखित के रूप में बदलना होगा:

        <td><g:checkBox id="${bookInstance.id}" name="delete_checkbox" value="${bookInstance.id}"" /></td>