Eli mulla on sivulla listattuna numeroita riveittäin ja checkbox:it niissä.
Formilla lähetän valitut numerot eteenpäin ja niistä pitäisi saada laskettua summa.
<?php $laske = $_POST['laske']; if(isset($laske)){ foreach($_POST as $key => $value){ if($key != "laske"){ $value = $_POST[$key]; echo "<div>$value</div>"; echo "<div>$key</div>"; unset($value); }; }; }; ?>
Edellä oleva koodi toimii, eli se tulostaa oikeat valitut numerot, mutta miten saan laskettua ne yhteen?
$key on tyyliin rivi0, $rivi1, ... jne.
Olen tässä nyt aamusta asti asiaa pohtinut, mutta ei ole onnistunut.
Tämä voisi toimia:
Kiitos avusta.
Tuo toimii.
Kaikkialla vaan suositellaan käyttämään foreachin kanssa unset:ia.
Itse asiassa myös rivi
$value = $_POST[$key];
on tarpeeton, koska foreach-silmukassa asetetaan sekä $key että $value.
Ainakaan yleensä foreach-silmukka ei vaadi unset-funktion käyttöä.
Pistetään nyt tähän topikkiin, että tarviiko tuota unset-funktiota oikeasti missään? Ei varmaan mitkään sivut ole niin isot, että tarvitsisi muuttujia poistaa viemästä serverin muistia. Eikös ne kuitenkin lähde sieltä muistista kun skripti on suoritettu?
Ainakin silloin unset-funktiolle on käyttöä, jos muuttuja pitää poistaa, jotta skripti toimii oikein. Esim. seuraavassa muuttujalle $tieto on annettu arvo, mutta if-lauseessa vaaditaan, ettei muuttujaa ole olemassa. Ratkaisu on käyttää välissä unset-funktiota.
Siis ohjelmoidessa voi syntyä tilanne, jolloin unset-funktiosta on hyötyä.
punppis kirjoitti:
Pistetään nyt tähän topikkiin, että tarviiko tuota unset-funktiota oikeasti missään? Ei varmaan mitkään sivut ole niin isot, että tarvitsisi muuttujia poistaa viemästä serverin muistia. Eikös ne kuitenkin lähde sieltä muistista kun skripti on suoritettu?
Lähinnä tulisi mieleen poistella muuttujia, ettei pääse tapahtumaan tuplapostausta tai vastaavaa. Muitin takia niitä ei ole tarvetta poistaa. Antin esimerkki tuntuu jotenkin kömpelöltä, koska miksi esitellä muuttuja, ja sen jälkeen tarkistaa onko se asetettu.
Aihe on jo aika vanha, joten et voi enää vastata siihen.