/ / Liste de paramètres pour une chaîne de requête HTML Form - html, forms

Liste de paramètres pour une chaîne de requête HTML Form - html, forms

<form name="input" action="/test/compare method="get">
<input type="checkbox" name="id" value="val1">val1<br/>
<input type="checkbox" name="id" value="val2">val2<br/>
<input type="submit" value="Submit">
</form>

Je veux une chaîne de requête qui ressemble à ceci:

/test/compare?id=val1,val2

Est-ce possible?

Réponses:

1 pour la réponse № 1

Pas exactement comme des valeurs séparées par des virgules, mais vous pouvez obtenir un tableau des valeurs de toutes les cases à cocher sélectionnées comme suit.

<form name="input" action="/test/compare" method="get">
<input type="checkbox" name="id[]" value="val1">val1<br/>
<input type="checkbox" name="id[]" value="val2">val2<br/>
<input type="submit" value="Submit">
</form>

PHP

// here you"l get array of id in $_GET and process according to your need
$ids=$_GET["id"];

$str=implode(",",$ids);  //array to comma separated values

echo $str;   //output will be checked checkbox values--> val1,val2

MODIFIER:

UNE AUTRE SOLUTION UTILISANT JAVASCRIPT

<form name="input" action="/test/compare" method="get">
<input type="checkbox" name="id" value="val1">val1<br/>
<input type="checkbox" name="id" value="val2">val2<br/>
<input type="submit" value="Submit">
</form>
<!-- load jQuery -->
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.0.min.js"> </script>
<script type="text/javascript">
$(document).ready(function(){
$("form[name=input]").submit(function(){   //bind onSubmit handler on page ready
//get all field values
var query="id="; //write here parameter name
$("form[name=input] [name=id]:checked").each(function(i){ //it will check for all elements inside form with name "id"
query+=$(this).val()+",";
});

query=query.slice(0,-1); //remove last extra comma
//redirect url by passing "query" as GET parameter
window.location=$(this).attr("action")+"?"+query;
return false;
});
});
</script>

0 pour la réponse № 2

Tu peux faire name="id[]" pour que le paramètre de formulaire devienne un tableau, mais à part cela, je ne crois pas qu'il soit possible de faire ce que vous demandez. Vous devez avoir des valeurs uniques en tant que champs de formulaire, à moins qu'il ne s'agisse d'un tableau.