Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][MSSQL][PHP]Problem z radioboxami w php/html
Forum PHP.pl > Forum > Przedszkole
kuba_pilach
Witam, mam wyszukiwarkę, która wyszukuje z danej tabeli mssql
I chciałbym, by przy każdym rekordzie było pole radio:
<input type="radio" name="niewiem" value="niewiem" />
I chciałbym potem za pomocą "zapisz" wtedy przenosiło się do kolejnej strony, wziąć zaznaczone rekordy i jakoś je zapisać (chyba do sesji), by potem je wykorzystać... naprzykład dla upewnienia użykownika
wypisać mu te rekordy
Wie ktoś jak to zrobić? Dzięki z góry
lobopol
to dodaj sobie przy każdym ten checkbox name="id[]" value="id rekordu" i po wysłaniu zapisujesz id rekordów, bądź wczytujesz znowu z bazy rekordy o tych id i zapisujesz do sesji. A i nie radio buttony, a checkboxy.
kuba_pilach
Ale z checkbox da się robić wielokrotne?
Bo chyba nie
lobopol
co to znaczy wielokrotnie? checkboxy są do zaznaczania wielu opcji, radiobuttony do zaznaczenia 1
kuba_pilach
Sorki, ale nie jestem za bardzo doświadczony w tym worriedsmiley.gif
Mam takie coś:
  1. echo '<input name="$r['Twr_TwrId']" value="$r['Twr_TwrId']" type="checkbox" />';

I te zaznaczone $r['Twr_TwrId'] chcę wykorzystać do zapytania mssql... czyli jak to będzie wyglądało w drugim pliku, bo nie jestem zakumaty w tych sprawach... bardzo proszę i z góry dziękuję

Odświeżam, no weś pomóż ktoś ...
lobopol
Nie
  1.  
  2. echo '<input name="$r['Twr_TwrId']" value="$r['Twr_TwrId']" type="checkbox" />';

a:
  1.  
  2. echo '<input name="cokolwiek[]" value="$r['Twr_TwrId']" type="checkbox" />';

Po przesłaniu w tablicy post a dokładniej w tablicy
  1. $_POST['cokolwiek']


będziesz miał wszystkie id przy których zaznaczono checkboxa.

a co z tym zrobisz po stronie drugiego pliku to już nie powinno ci sprawić problemu. W sesji najlepiej zapisz sobie id przesłąne czyli np. $_SESSION['id'] = $_POST['cokolwiek']
kuba_pilach
Zrobiłem to co napisałeś i wyskakuje mi błąd:
Kod
Parse error: syntax error, unexpected T_STRING, expecting ',' ot ';' in C:\xampp\htdocs\nauka\step1_2.php on line 87


A mój kawałek kodu:
  1. linia 86: echo stripslashes($r['Twr_Nazwa']);
  2. linia 87: echo '<input name="iduslugi[]" value="$r['Twr_TwrId']" type="checkbox" /><br />';
lobopol
  1. echo '<input name="iduslugi[]" value="$r['Twr_TwrId']" type="checkbox" /><br />';

zamień na
  1. echo '<input name="iduslugi[]" value="'.$r['Twr_TwrId'].'" type="checkbox" /><br />';
kuba_pilach
Dobra, udało mi się to wyświetlić, ale mam problem z zapisaniem do sesji i pokazanie tego jako sesji
  1. <html>
  2. <head>
  3. <META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-2">
  4. <title>Wybieranie usług</title>
  5. <link rel="stylesheet" type="text/css" href="css/styles.css" />
  6. </head>
  7.  
  8. <body>
  9. <?php
  10. $usluga = $_POST['usluga'];
  11.  
  12.  
  13. include 'connection.php';
  14.  
  15. if ($_POST['iduslugi']) {
  16. ?>
  17. <table class="z" border="1" frame="void" rules="none">
  18. <?php
  19. foreach ($_POST['iduslugi'] as $idu) {
  20. $wypytanie = mssql_query("select * from CDN.Towary where Twr_TwrId='$idu' ");
  21. while ($wyp = mssql_fetch_assoc($wypytanie)) {
  22. echo "<tr>";
  23. echo "<td>".$wyp['Twr_Nazwa']."</td>";
  24. echo "</tr>";
  25.  
  26. }
  27. }
  28. ?>
  29. </table>
  30. <?php
  31.  
  32. }
  33.  
  34. ?>
  35. </body>
  36. </html>
lobopol
Zastanów się co do sesji zapisałeś masz teraz tablicę (jeżeli zrobiłeś tak jak ja ci powiedziałem) (mam nadzieje, że nie zapomniałeś wstawić session_start()winksmiley.jpg, jeżeli chcesz teraz wyciągnąć wszystko to znacznie sensowniej zrobisz to tak:

  1. $query="SELECT * from Towary WHERE Twr_TwrId IN(".implode(',',$_SESSION['iduslugi']).")"


tylko sprawdź sobie wcześniej czy przypadkiem $_SESSION['iduslugi'] nie jest puste
kuba_pilach
Mam problem z sesjami... czyli jak w jednym pliku robię:
  1. foreach ($_POST['iduslugi'] as $idu) {
  2. $_SESSION['iduslugi'] = $_POST['iduslugi'];
  3. }
  4.  
  5. to potem w następnym pliku mam napisać:
  6. [php]
  7. <?php
  8. echo $_SESSION['iduslugi'];

questionmark.gif?
Bo jak tak pisałem, to wyświetlał mi się błąd:
  1. Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\nauka\step3.php:9) in C:\xampp\htdocs\nauka\step3.php on line 10

lobopol
session_start ma być na samym początku strony przed wyświetleniem jakiegokolwiek tekstu
kuba_pilach
mam plik step1.php:
  1. <html>
  2. <head>
  3. <META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-2">
  4. <title>Wybieranie opcji</title>
  5. <link rel="stylesheet" type="text/css" href="css/styles.css" />
  6. </head>
  7.  
  8. <body>
  9. <?php
  10. if ($a != dod) {
  11. ?>
  12. <h1>Wyszukiwanie</h1>
  13.  
  14. <form action="step1.php" method="post">
  15. <select name="metoda_szukania">
  16. <option value="KnT_Kod">Kod</option>
  17. <option value="Knt_Nazwa1" value="Knt_Nazwa2">Nazwa</option>
  18. </select>
  19. <br />
  20. Wprowadź poszukiwane wyrażenie:<br />
  21. <input name="wyrazenie" type="text" size="40">
  22. <br />
  23. <input type="submit" name="submit" value="Szukaj">
  24. </form>
  25.  
  26. <?php
  27. }
  28.  
  29.  
  30. if ($_POST['submit']) {
  31.  
  32. // utworzenie krótkich nazw zmiennych
  33. $metoda_szukania=$_POST['metoda_szukania'];
  34. $wybor=$_POST['wybor'];
  35. $wyrazenie=trim($_POST['wyrazenie']);
  36.  
  37. $wyrazenie = trim($wyrazenie);
  38.  
  39. if (!$metoda_szukania || !$wyrazenie) {
  40. echo 'Brak parametrów wyszukiwania. Wróć do poprzedniej strony i spróbuj ponownie.';
  41. }
  42.  
  43. $metoda_szukania = addslashes($metoda_szukania);
  44. $wyrazenie = addslashes($wyrazenie);
  45. }
  46.  
  47. include 'connection.php';
  48.  
  49. $zapytanie = "select * from CDN.Kontrahenci where ".$metoda_szukania." like '%".$wyrazenie."%'";
  50. $wynik = mssql_query($zapytanie);
  51.  
  52. $ile_znalezionych = mssql_num_rows($wynik);
  53.  
  54. echo "<p>Ilość znalezionych pozycji: ".$ile_znalezionych."</p>";
  55. ?>
  56. <table class="z" border="1" frame="void" rules="none">
  57. <?php
  58. for ($i=0; $i <$ile_znalezionych; $i++) {
  59. ?>
  60. <?php
  61. $wiersz = mssql_fetch_assoc($wynik);
  62. echo "<tr>";
  63. echo "<td><p><strong>".($i+1).". </td>";
  64. echo stripslashes("<td>".$wiersz['Knt_Nazwa1']." ".$wiersz['Knt_Nazwa2']."</td>");
  65. echo "<td><a href=\"step1_2.php?a=dod&amp;id={$wiersz['Knt_KntId']}\"><img src=images/ikona.png></a></td>";
  66. }
  67. ?>
  68. </table>
  69. <?php
  70. }
  71. ?>
  72.  
  73.  
  74. <?php
  75. $a = trim($_REQUEST['a']);
  76. $id = trim($_GET['id']);
  77. if ($a==dod) {
  78. ?>
  79. Rezultaty:
  80. <?php
  81.  
  82. include 'connection.php';
  83. $wybieranieklienta = mssql_query("SELECT * FROM CDN.Kontrahenci WHERE Knt_KntId = '$id' ")
  84. or die(mssql_error());
  85. $klient = mssql_fetch_assoc($wybieranieklienta);
  86. echo "<br />";
  87. echo "Klient:".$klient['Knt_Nazwa1'].$klient['Knt_Nazwa2'];
  88. echo "<br />";
  89. echo "Kod klienta:".$klient['Knt_Kod'];
  90.  
  91. }
  92. ?>
  93. </body>
  94. </html>


Przetwarzanie mam takie:
  1. <?php
  2.  
  3. $a = trim($_REQUEST['a']);
  4. $id = trim($_GET['id']);
  5.  
  6. if ($a = dod) {
  7.  
  8. $id = $_SESSION['id'];
  9. }
  10. include 'connection.php';
  11. ?>

I potem chcę napisać tą sesję później:
  1. <?php
  2. echo $_SESSION['id'];
  3. ?>

I nic mi nie pisze...
Wiesz może o co chodzi?
lobopol
a w przetwarzaniu masz session_start na początku?
$id = $_SESSION['id']; odwrotnie
kuba_pilach
nic nie zmieniło się
lobopol
Kurde patrzę w twój kod i to jest straszne, formularz ma np. <option value="Knt_Nazwa1" value="Knt_Nazwa2">Nazwa</option> czyli dwa value
w drugim pliku na końcu wyświetl print_r($_GET) i print_r($_SESSION)
kuba_pilach
Wiem, że straszne... ludzie się uczą zazwyczaj na błędach... czyli co zrobić, by sesje działały.
Wyjaśnię ci po co to: chcę brać kontrahenta, usługi, towary i opis do tabel mssql
I by potem jeszcze miał możliwość wydruku zlecenia... Może masz jakiś pomysł co do zrobienia tego projektu?
lobopol
najpierw zobaczmy czy wszystko dobrze przesyłasz dlatego pokaż wyniki printów, projekt jest bardzo prosty tylko trzeba poświęcić z tydzień dwa na zakodowanie i zabezpieczenie.
kuba_pilach
Dobra, oto wynik:
Kod
Array ( ) Array ( [kontrahent] => 243 [iduslugi] => Array ( [0] => 3 [1] => 13 ) )

A i nie lepiej przez gg? 2223312
lobopol
czyli masz nieustawionego geta z sesji możesz sobie id wyciągnąć.

Właściwie co ty chciałeś tu wyświetlić?
  1. echo $_SESSION['id'];

Dobra ja dziś już lecę jutro popatrzę na odpowiedzi smile.gif
kuba_pilach
Po prostu chciałem zobaczyć, czy działa ;]

Wogule nie zapisuje do sesji... niech ktoś dopomoże
lobopol
No jak to nie zapisuje, a to: Array ( [kontrahent] => 243 [iduslugi] => Array ( [0] => 3 [1] => 13 ) )?
kuba_pilach
Problem tkwi w tym, że po kolejnym wyszukiwaniu kasuje mi się sesja... bo jak napiszę przed wyszukaniem to mi pisze dobrze
Wiesz jak rozwiązać problema?
lobopol
Bo po ponownym wyszukaniu nadpisujesz sobie sesje
kuba_pilach
Ale mi chodzi po kolejnym wyszukaniu wykorzystując inne zapytania i zupełnie inną wyszukiwarkę...
pierwszy plik -> wyszukiwanie kontrahenta
drugi plik -> wyszukiwanie usług

Masz jakiś pomysł, by tą sesję mimo tego zachować?

Odpowiadajcie dobrzy ludzie biggrin.gif Proszę...
lobopol
Zapisuj do innej zmiennej sesyjnej i tyle. Ale sądząc po tej tablicy to dobrze zapisujesz wszystko.
kuba_pilach
Tzn.?
Oto wynik wynik po drugim wyszukiwaniu: Array ( [a] => dodawanieuslugi [id] => ) Array ( [iddosesji] => [id] => [iduslugi] => Array ( [0] => 3 ) )
Chyba coś tu nie gra? POMOCY!

proszę o pomoc i dzięki z góry!

Dużo próbowałem, ale nie wychodziło...
Jeszcze raz proszę za chęci !
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.