Je fais un formulaire de liste de contrôle et je suis actuellement capable d'ajouter la valeur des cases sélectionnées à l'URL dans je me sens une manière inefficace et que le problème principal est que l'état de la case à cocher ne sauve aucun utilisateur ne peut pas voir Ce qu'ils ont vérifié ou décoché.
Ceci est le code HTML P> Ceci est le script pour faire l'URL P>
Laisser forme = document.getElementyID ("carform") p> Donc, par exemple si Kia et Honda ont été sélectionnés, l'URL serait P> /inventory?make=kia&make=honda
4 Réponses :
var makes=[];
...
for (var i=0;i<checkboxes.length;i++) {
if (checkboxes[i].checked) makes.push(checkboxes[i].value);
}
...
url+='&makes='+makes.join(',');
This will give you a comma delimited list; you can string split it on the server side.
Je pense que vous ne devez pas définir tous les paramètres de l'URL comme marque = ..., mais avec Désolé pour mon anglais approximatif, je suis suisse et parle français. P> $ {vals} = coché code>. Ensuite, vous pouvez la lire facilement avec PHP et vérifiez simplement les noms définis, mais vous devrez définir un nom pour vos chackboxes. P>
Si vous avez accès à une langue côté serveur, comme PHP, utilisez-le pour vérifier l'URL et cocher automatiquement les cases lorsque la page se charge. Quelque chose sur ces lignes:
window.onload = () => {
for (const el of checkboxes) {
// Check the URL's params:
// From link below
const urlParams = new URLSearchParams(window.location.search);
const myParam = urlParams.get(el.value);
if (myParam != null) {
el.checked = true;
}
}
}
J'utilise Nodejs / Express.js et EJS, savez-vous à quoi ressemblerait la solution équivalente, puis-je simplement transmettre les valeurs du côté serveur dans le modèle EJS, puis faire quelque chose de similaire? Et ce type de solution fonctionne-t-il Quand un utilisateur décoque? C'est aussi la façon dont j'ai annexé à l'URL une bonne solution?
Je ne suis pas trop familier avec Express, mais dans le petit bricolage, je sais que vous pouvez passer des variables à EJS et faire des choses de cette façon. Quelque chose comme res.Render ('page.ejs', {kia: true, bmw: true}); code> (ne me cite pas sur cela). Voir ceci: Stackoverflow.com/a/14201112/10549827 . - Votre code pourrait être optimisé un peu, mais comme pour votre méthode réelle de définition de l'URL, c'est plutôt bien. Il y a plus de solutions modernes ( Stackoverflow.com/a/58922710/10549827 ) mais les utiliser réduira votre support de navigateur. Votre est solide et devrait bien fonctionner. Peut-être essayer certains pour des boucles code>.
Vous devez jeter un coup d'œil sur URLSECHPARAMS CODE > . En utilisant, vous pouvez faire quelque chose comme ceci: