[php] odczytywanie danych z formularza

0

mam fomularz z polami:

<form action="cos.php"> <input type="checkbox" name="potrawa" value="b"> barszcz <input type="checkbox" name="potrawa" value="l"> łosoś <input type="checkbox" name="potrawa" value="i"> inna
<input type="submit" name="wyslij" value="wyślij"> </form>

w skrypcie cos.php chcę odczytać wartośc zmiennej $potrawa.
Jeśli zaznaczony jest 1 checkbox zwracana jest wartość i jest ok. Ale chcę uzyskać taki efekt, że po zaznaczeniu np barszcz i łosoś wyświetliło mi się bl albo może w jakiejś tablicy???. Problem w tym że pola chceckbox muszą mieć tą samą nazwę :/

0

no to mosisz dac inne "name" do kazdego elementu

0

No przecież piszę że nie musi być to samo. Pewnie w js tylko da się to zrobić, ale chyba mnie to nie interesuje...

0
<form action="cos.php"> <input type="checkbox" name="potrawa" value="b"> barszcz <input type="checkbox" name="potrawa" value="l"> łosoś <input type="checkbox" name="potrawa" value="i"> inna
<input type="submit" name="wyslij" value="wyślij"> </form>

a wiec możesz zastosowac np coś takiego:

<?
echo'<FORM action = "cos.php">';
$i=0;
while (!$nazwa[$i]=="")
{
echo'<INPUT type="checkbox" name="potrawa['.$i.']" value="'.$skrot.'">'.$nazwa.' ';
$i++;
}
echo'<INPUT type="submit" name = "wyslij" value="wyślij"></FORM>';
?>

i bedziesz mial tabele: $nazwa.
Wtedy każda komórka tabeli przyjmie odpowiednią wartosc $skrot jeżeli zaznaczysz dany checkbox.

Jeżeli nie o to chodzi to wyslij na [email protected] dokladny opis problemu wraz ze skryptem, a ja ci dam rozwiązanie.

0

Dzięki, ale nie o to mi chodziło. Ja formularz mam wygenerowany i każdy check ma taką samą nazwę. Moje pytanie było mocno nieprzemyślane - nie da się zrobić tego co chcę.

A chodziło mi o to żeby odczytać value wszystkich zaznaczonych elementów, przy takim samym name checkboxa.

0

jedynie to można chyba skryptem JS, naskrobałem na szybko takie coś (może nie optymalne ale chociaż na IE* działa ;P - na innych może też ale nie chce mi się sprawdzać):

<FORM action = "cos.php" onsubmit="polacz(this,'potrawa')">
    <INPUT type="checkbox" name="potrawa" value="b"> barszcz
    <INPUT type="checkbox" name="potrawa" value="l"> łosoś
    <INPUT type="checkbox" name="potrawa" value="i"> inna<br>
    <INPUT type="submit" name = "wyslij" value="wyślij">
</FORM>
<script language="JavaScript" type="text/javascript"><!--
function polacz(f,nazwa){
 for(s=a=false,r='',e=f.elements,i=0;i<f.length;i++)
  if((k=e[i])['name']==nazwa && k['checked']){
   r+=k['value']; k['checked']=!a; if(!a)s=k; a=true }
 if(s){ s['value']=r; s['checked']=true }
}
//--></script>

zakładając że nie możesz zmienić nijak formularza (tj. dodać "onsubmit") ale możesz dodać skrypt JS a formularz jest pierwszym na stronie to możesz dodać do skryptu coś w stylu:

onload=function(){
 if((e=document.getElementsByTagName('form')).length>0)
  e[0].onsubmit=function(){ polacz(this,'potrawa') }
}
  • jak w IE działa to zazwyczaj w FF też

1 użytkowników online, w tym zalogowanych: 0, gości: 1