Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] wartość pola radio
motorider
post 30.11.2008, 14:32:56
Post #1





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 15.11.2008

Ostrzeżenie: (0%)
-----


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>


Ten post edytował motorider 30.11.2008, 14:33:42
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Maciekbjw
post 30.11.2008, 14:41:05
Post #2





Grupa: Zarejestrowani
Postów: 217
Pomógł: 23
Dołączył: 2.12.2007
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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.


--------------------
Masz swoje mieszkanie i chcesz je wynająć? Sprawdź ofertę Zarzadządzanie Najmem

WRONA.IT - pozycjonowanie stron
www.ecyklopedia.pl
Go to the top of the page
+Quote Post
motorider
post 30.11.2008, 16:37:03
Post #3





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 15.11.2008

Ostrzeżenie: (0%)
-----


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();
?>



Ten post edytował motorider 30.11.2008, 16:47:55
Go to the top of the page
+Quote Post
Pilsener
post 1.12.2008, 08:59:07
Post #4





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
motorider
post 1.12.2008, 14:07:42
Post #5





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 15.11.2008

Ostrzeżenie: (0%)
-----


Co miałbym zapisywać do tablicy?
Go to the top of the page
+Quote Post
Pilsener
post 1.12.2008, 15:18:00
Post #6





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


  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?
Go to the top of the page
+Quote Post
motorider
post 1.12.2008, 15:42:32
Post #7





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 15.11.2008

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 07:15