Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] wartość pola radio
Forum PHP.pl > Forum > Przedszkole
motorider
W jaki sposób można zapisać do sesji wartość pola radio? Próbowałem w sposób taki jak poniżej, ale zapisuje nazwę pola czyli "rad", a nie "zatwierdz" lub "odrzuc"
CODE

<?
session_start();
ob_start();

if($_SESSION['r']=="zatwierdz")
{}
else
{}
?>

<html>
<head>
<title>test</title>
</head>
<body>
<form action="weryfikacja.php" method="POST">
<input type="radio" name="rad" value="zatwierdz"/>zatwierdz
<input type="radio" name="rad" value="odrzuc"/>odrzuc
<? $_SESSION['r']=rad; ?>
</form>
</body>
</html>
Maciekbjw
Cytat(motorider @ 30.11.2008, 14:32:56 ) *
W jaki sposób można zapisać do sesji wartość pola radio? Próbowałem w sposób taki jak poniżej, ale zapisuje nazwę pola czyli "rad", a nie "zatwierdz" lub "odrzuc"
CODE

<?
session_start();
ob_start();

if($_SESSION['r']=="zatwierdz")
{}
else
{}
?>

<html>
<head>
<title>test</title>
</head>
<body>
<form action="weryfikacja.php" method="POST">
<input type="radio" name="rad" value="zatwierdz"/>zatwierdz
<input type="radio" name="rad" value="odrzuc"/>odrzuc
<? $_SESSION['r']=rad; ?>
</form>
</body>
</html>

Witaj,
formularz przesyłasz metodą typu POST, więc będzie:
  1. <?php
  2. $_SESSION['r'] = $_POST['rad'];
  3. ?>


Pozdrawiam.
motorider
Wkleję jednak cały kod i napisze dokładnie z czym mam problem. W pętli wypisuję dane pobrane z bazy, dopisuję nową kolumnę status z dwoma polami typu radio i buttonem submit dla każdego wiersza. Po wybraniu opcji dane mają być zapisywane do nowej tabeli. Próbowałem tworzyć dynamiczne nazwy pól radio, ale wtedy nie mogę pobrać ich wartości.

CODE
session_start();
ob_start();
include("baza.php");
$wynik = mysql_query('select * from kandydaci');

if($_SESSION['w'])
{
if($_SESSION['rad']=="zatwierdz")
{
$status="zatwierdzone";
$checked_z='checked="checked"';
}
else
{
$status="odrzucone";
$checked_o='checked="checked"';
}
$id_kandydata=$_SESSION['id_kandydata'];
$dis='disabled="disabled"';
mysql_query("INSERT INTO zgloszenia SET id_kandydata='$id_kandydata', status='$status'");
}
?>

<html>
<head>
<title>Weryfikacja</title>
</head>
<body>

<form action="weryfikacja.php" method="POST">
<table>
<tr>
<td>id</td><td>imię</td><td>nazwisko</td><td>status</td>
</tr>
<?php
while ($rekord = mysql_fetch_assoc($wynik))
{
$id_kandydata=$rekord['id_kandydata'];
$_SESSION['id_kandydata']=$id_kandydata;

echo "<tr>";
echo "<td>";echo $rekord['id_kandydata']; echo "</td>";
echo "<td>";echo $rekord['imie']; echo "</td>";
echo "<td>";echo $rekord['nazwisko']; echo "</td>";
echo "<td>";
$radio="radio_";
$rad=$radio.$id_kandydata;
echo '<input type="radio" name='; echo "$rad $checked_z $dis"; echo ' value="zatwierdz";/>zatwierdz';
echo '<input type="radio" name='; echo "$rad $checked_o $dis"; echo ' value="odrzuc"/>odrzuc';
$_SESSION['rad']=$rad;
echo "</td>";
echo "<td>";
$wyslij="wyslij_";
$w=$wyslij.$id_kandydata;
$_SESSION['w']=$w;
echo '<input type="submit" name="'; echo "$w"; echo '" value="Wyślij" '; echo "$dis"; echo '/>';
echo "</td>";
echo "</tr>";
}
mysql_free_result($wynik);
?>

</table>
</form>

</body>
</html>

<?php
ob_end_flush();
?>

Pilsener
Cytat
Próbowałem tworzyć dynamiczne nazwy pól radio
- po co? Zamiast dynamicznego generowania zmiennych w celu poprawy czytelności i zwiększenia efektywności zaleca się wykorzystanie tablic. Przetestuj:

  1. <input name="tablica[]" value="a" />
  2. <input name="tablica[]" value="b" />
- odbierasz tak jak zwykły post:
  1. <?php
  2. $tablica = $_POST['tablica'];
  3. print_r($tablica);
  4. ?>
- tablicę możesz wygodnie parsować w pętli foreach.
motorider
Co miałbym zapisywać do tablicy?
Pilsener
  1. <input type="radio" name="radio[1]" value="123" /><input type="radio" name="radio[1]" value="567" />
  2. <input type="radio" name="radio[2]" value="abc" /><input type="radio" name="radio[2]" value="xyz" />


  1. <?php
  2. $radio = $_POST['radio'];
  3. foreach($radio as $linia){
  4.   echo $linia.'<br />';
  5. }
  6. ?>
- u mnie coś takiego działa bez problemu. Opisałbyś czemu to ma służyć, to być może byśmy znaleźli prostsze rozwiązanie. Po co submity przy każdym rekordzie?
motorider
Ogólne założenie jest takie: select zwraca ileś wierszy spełniających jakiś warunek, dane w jakiś uporządkowany sposób trzeba zaprezentować użytkownikowi (do tej pory wypisywałem je w tabeli) i dać mu możliwość dopisania nowych wartości do każdego wiersza a następnie wszystko zapisać do nowej tabeli.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.