Hallo töbi,
Wenn ich ein Formular abschicke, das die Methode "GET" verwendet, wird der ganze "Query-String" in der URL abgeschnitten.
nö. Außer wenn er zu lang ist. Aber das passiert nur, wenn du z.B. <textarea>-Eingaben und sowas per GET verschickst. Sollte man nämlich lieber dann per POST machen.
Schon mal beim Mozilla-Browser probiert? Bei meinem ist es genau so! :-(
Ich will aber unbedingt ein Formular mit der Methode GET abschicken so dass die vorhandenen GET-Variablen erhalten bleiben.
wieso?
Ich will den query-String weiter verwenden um aus der Aktuellen ansicht eventuell einen Menue-Punkt zu generieren. Es macht auf jeden fall Sinn.
foreach($_GET AS $get_key => $get)
{
echo '<input type="hidden" name="'.$get_key.'" value="'.$get.'">';
}
Im Formular,
aber sobald es Arrays sind geht das auch nicht mehr. Was dann raus kommt sieht natürlich so aus:
<input type="hidden" name="arrayVariable" value="Array">gnau.
<input type="hidden" name="arrayVariable[a]" value="wert">
Kennt jemand das Problem?Nö, aber lass uns mal überlegen...:
Wir bekommen ein "Array" geschickt:
?array[]=bla&array[]=ble&array[]=blo&array[]=bli
nun ist $_GET["array"] ein Array. Was machen wir also folglich?
foreach($_GET AS $get_key => $get)
{
if(is_array($get))
{
foreach($get as $key => $value)
{
echo '<input type="hidden" name="'.$get_key.'['.$key.']" value="'.$value.'">';
}
}
else
echo '<input type="hidden" name="'.$get_key.'" value="'.$get.'">';
}So müsste es gehen.
Genial!!
Jetzt habe ich aber noch ein anderes Probelm das dazu kommt:
Wenn ich das Formular absende mit den erzeugten Hidden tags (und deiner Hilfe) Sieht das so aus:
?beispielArray%5Ba%5D=1 anstatt wie gewollt:
?beispielArray[a]=1
macht das ganze viel komplizierter, wenn ich das mit einem preg_replace oder was änlichem löschen will.
{
preg_replace("beispielArray[a]=1","",$query};
)
was meinst du dazu?
töbi