Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: lista rozwijana i dostępność produktów JEST BRAK
Forum PHP.pl > Forum > PHP
djbit
Witam, chciałbym zrobić taki formularz z listą rozwijaną- przykład:

młotek ( obok młotka lista rozwijana i dwa pola wyboru - albo JEST albo BRAK)
kilof ( obok kilofa lista rozwijana i dwa pola wyboru - albo JEST albo BRAK)
na końcu zapisz stan magazynowy najlepiej do pliku txt.

chcę żeby dane trafiały do pliku txt i były odczytywane za pomocą php ale już bez pola wyboru.

czyli żeby było wyświetlone np.

młotek JEST
kilof BRAK

teraz gdy znów bym wchodził do formularza z wyborem (listą rozwijaną), żeby tu w polach wyboru widniała ostatnia wybrana opcja czyli np. Młotek JEST kilof BRAK.

Da się coś takiego zrobić, bo kombinuje i nie umiem nic wymyślić.
RubiX
omg koleś wystarczy otworzyć google i wpisać php + działania na plikach txt

tutaj masz jakiś pierwszy lepszy kurs KLiK dziwne zobacz nawet po polsku napisali smile.gif sorry że tak trochę szydze ale normalnie zaśmiecacie już to forum.php.pl

A teraz zrób tak:
stwórz sobie plik options.txt i nadaj mu chmody 777 żebyś zaraz nie zrobił nowego tematu dlaczego nie da się zapisać danych do pliku txt.
Następnie zrób sobie formularz z tymi młotkami kilofami i wiertarkami.
Przesyłasz formularz i odbierasz zmienne

  1. <?php
  2. $mlotek = $_POST['mlotek'];
  3. $kilof = $_POST['kilof'];
  4.  
  5. $options = "options.txt";
  6. if ($plik = fopen($options, "w"))
  7.     {
  8.      if (fwrite($plik, $mlotek . "|" . $kilof) !== FALSE) echo "Zapis do pliku zakończył się powodzeniem...";
  9.        else echo "Zapis do pliku się nie powiódł...";
  10.  
  11.      fclose($plik);
  12. ?>


teraz załóżmy że $mlotek to BRAK a $kilof to jest, to w twoim pliku będzie taki zapis : BRAK|JEST

Jak chcesz wsadzić te dane spowrotem w formularz to robisz odczyt z pliku czyli

  1. <?php
  2. $options = "options.txt";
  3. $plik = fopen($options, "r");
  4. $dane = fread($plik, filesize($options));
  5. list($mlotek, $kilof) = explode("|", $dane);
  6. ?>


i teraz w zmiennej $mlotek masz BRAK a w kilof JEST tylko musisz je wsadzic w <option value="$mlotek">$mlotek</option> co myśle że już będziesz wiedział jak.
djbit
Za nic w świecie mi to nie chce działać
Mam plik tekstowy options.txt
Mam stworzony plik index.php do podglądu dostępności towaru:
Kod
<?php
$options = "options.txt";
$plik = fopen($options, "r");
$dane = fread($plik, filesize($options));
list($mlotek, $kilof) = explode("|", $dane);
echo "młotek $mlotek<br>";
echo "kilof $kilof";

?>



Tutaj mam formularz.php do wyboru dostępności produktu:
Kod
<?php

$mlotek = $_POST['mlotek'];
$kilof = $_POST['kilof'];


echo '<form action="" method="post">Młotek
    <select name="mlotek">
        <option>JEST</option>
        <option>BRAK</option>
    </select><br>Kilof
        <select name="kilof">
        <option>JEST</option>
        <option>BRAK</option>
    </select><input type="submit" value="Zapisz" />
</form>';


$options = "options.txt";
if ($plik = fopen($options, "w"))
    {
     if (fwrite($plik, $mlotek . "|" . $kilof) !== FALSE) echo "Zapis do pliku zakończył się powodzeniem...";
       else echo "Zapis do pliku się nie powiódł...";
      }
     fclose($plik);
?>


To działa i zapisuje do pliku tekstowego takie coś:
JEST|JEST
a plik index.php wyświetla takie coś:
młotek JEST
kilof JEST

czyli wszystko ok

Ale nie umiem sobie poradzić, żeby ten formularz pobierał te dane z pliku tekstowego i umieszczał w okienku listy rozwijanej jako pierwszy ten co był wcześniej zaznaczony. Jak zastosuje ten kod co podałeś to pobiera, ale już nie ma innej opcji do wyboru jest tylko (gdy rozwijam okienko) np, Kilof JEST JEST.
RubiX
pokaz kod w ktorym masz wyciag z pliku i wsadzasz to w formularz


  1. <?php
  2. $options = "options.txt";
  3. $plik = fopen($options, "r");
  4. $dane = fread($plik, filesize($options));
  5. list($mlotek, $kilof) = explode("|", $dane);
  6.  
  7.  
  8. echo '<form action="" method="post">Młotek
  9.    <select name="mlotek">
  10. <option>'.$mlotek.'</option>
  11.        <option>JEST</option>
  12.        <option>BRAK</option>
  13.    </select><br>Kilof
  14.        <select name="kilof">
  15. <option>'.$kilof.'</option>
  16.        <option>JEST</option>
  17.        <option>BRAK</option>
  18.    </select><input type="submit" value="Zapisz" />
  19. </form>';
  20. ?>


takie cos mniej wiecej
djbit
Gdy umieszczę w formularzu taki kod:
Kod
<?php
$optionss = "options.txt";
$plikk = fopen($optionss, "r");
$dane = fread($plikk, filesize($optionss));
list($mlotek, $kilof) = explode("|", $dane);

echo '<form action="" method="post">Młotek
   <select name="mlotek">
<option>'.$mlotek.'</option>
       <option>JEST</option>
       <option>BRAK</option>
   </select><br>Kilof
       <select name="kilof">
<option>'.$kilof.'</option>
       <option>JEST</option>
       <option>BRAK</option>
   </select><input type="submit" value="Zapisz" />
</form>';

$options = "options.txt";
if ($plik = fopen($options, "w"))
    {
     if (fwrite($plik, $mlotek . "|" . $kilof) !== FALSE) echo "Zapis do pliku zakończył się powodzeniem...";
       else echo "Zapis do pliku się nie powiódł...";
      }
     fclose($plik);
?>


Odczytuje on dane z pliku txt.

Ale gdy zmienię np. z brak na jest i daje zapisz to już tego nie zapisuje w pliku txt
ten kod coś tu miesza:
Kod
$optionss = "options.txt";
$plikk = fopen($optionss, "r");
$dane = fread($plikk, filesize($optionss));
list($mlotek, $kilof) = explode("|", $dane);


bez niego funkcja zapisywania działa, ale nie działa funkcja wczytywania z pliku.

mały postęp jest;) :
Kod
<?php
$optionss = "options.txt";
$plikk = fopen($optionss, "r");
$dane = fread($plikk, filesize($optionss));
list($mlotek, $kilof) = explode("|", $dane);

echo '<form action="" method="post">Młotek
   <select name="mlotekk">
<option>'.$mlotek.'</option>
       <option>JEST</option>
       <option>BRAK</option>
   </select><br>Kilof
       <select name="kiloff">
<option>'.$kilof.'</option>
       <option>JEST</option>
       <option>BRAK</option>
   </select><input type="submit" value="Zapisz" />
</form>';

$options = "options.txt";
if ($plik = fopen($options, "w"))
    {
     if (fwrite($plik, $mlotekk . "|" . $kiloff) !== FALSE) echo "Zapis do pliku zakończył się powodzeniem...";
       else echo "Zapis do pliku się nie powiódł...";
      }
     fclose($plik);
?>



zmieniłem <select name="mlotek"> na <select name="mlotekk"> itd. już zapisuje je w postaci jest/jest i odczytuje je mlotek jest kilof jest, tylko że jak kilka razy odświeże formularz to zostają puste okienka i puste pola sie zapisują do pliku txt.
melkorm
To dodaj warunek na pola z post czy przypadkiem nie są puste / nieustawione smile.gif
djbit
hmm - a można jaśniej biggrin.gif

dziwne trochę, że te pola się samoczynnie czyszczą - przecież powinny cały czas wczytywać z pliku txt.
melkorm
tylko że te optiony nie mają value to raz dwa że nie widze gdzie przypisujesz wartości zp osta do tych zmeinnych ... .


ahh ... wklej aktualny cały kod.~~
djbit
Kod
<?php

$mlotekk = $_POST['mlotekk'];
$kiloff = $_POST['kiloff'];

$optionss = "options.txt";
$plikk = fopen($optionss, "r");
$dane = fread($plikk, filesize($optionss));
list($mlotek, $kilof) = explode("|", $dane);

echo '<form action="" method="post">Młotek
   <select name="mlotekk">
<option>'.$mlotek.'</option>
       <option>JEST</option>
       <option>BRAK</option>
   </select><br>Kilof
       <select name="kiloff">
<option>'.$kilof.'</option>
       <option>JEST</option>
       <option>BRAK</option>
   </select><input type="submit" value="Zapisz" />
</form>';

$options = "options.txt";
if ($plik = fopen($options, "w"))
    {
     if (fwrite($plik, $mlotekk . "|" . $kiloff) !== FALSE) echo "Zapis do pliku zakończył się powodzeniem...";
       else echo "Zapis do pliku się nie powiódł...";
      }
     fclose($plik);
?>
melkorm
  1. <?php
  2. if ($plik = fopen($options, "w"))
  3. ?>


popraw ten warunek na taki :
  1. <?php
  2. if ($plik = fopen($options, "w") && $_POST['submit'])
  3. ?>


i submitowi daj name="submit" .
djbit
dałem i teraz w ogóle nie działa, wywala mi błąd:
Warning: fclose(): supplied argument is not a valid stream resource in h:\!cwphp nowe\hurtownia\formularz.php on line 30
melkorm
daj fclose w klamry warunku? :|

zresztą gdy pobierasz dane z pliku pod nimi powinieneś dać jeszcze :
  1. <?php
  2. fclose($plikk);
  3.  
  4. //podtym :
  5. list($mlotek, $kilof) = explode("|", $dane);
  6. ?>
djbit
Kod
<?php

$mlotekk = $_POST['mlotekk'];
$kiloff = $_POST['kiloff'];

$optionss = "options.txt";
$plikk = fopen($optionss, "r");
$dane = fread($plikk, filesize($optionss));
list($mlotek, $kilof) = explode("|", $dane);
fclose($plikk);

echo '<form action="" method="post">Młotek
    <select name="mlotekk">
<option>'.$mlotek.'</option>
        <option>JEST</option>
        <option>BRAK</option>
    </select><br>Kilof
        <select name="kiloff">
<option>'.$kilof.'</option>
        <option>JEST</option>
        <option>BRAK</option>
    </select><input type="submit" name="submit" value="Zapisz" />
</form>';

$options = "options.txt";
if ($plik = fopen($options, "w") && $_POST['submit'])
     {
      if (fwrite($plik, $mlotekk . "|" . $kiloff) !== FALSE) echo "Zapis do pliku zakończył się powodzeniem...";
        else echo "Zapis do pliku się nie powiódł...";
       }
      fclose($plik);
?>


Dalej nic. Komunikat: Warning: fclose(): supplied argument is not a valid stream resource in ...formularz.php on line 31
RubiX
Ale masz bajzel w tym wszystkim może podziel ten plik na jakies akcje zebys wiedzial co gdzie masz np:

  1. <?php
  2. if (!$_GET['akcja']) {
  3. $_GET['akcja'] = "krok1";
  4. }
  5.  
  6. if ($_GET['akcja'] == "krok1") {
  7.  
  8. $optionss = "options.txt";
  9. $plikk = fopen($optionss, "r");
  10. $dane = fread($plikk, filesize($optionss));
  11. list($mlotek, $kilof) = explode("|", $dane);
  12. fclose($plikk);
  13.  
  14. echo '<form action="formularz.php?akcja=krok2" method="post">Młotek
  15.    <select name="mlotekk">
  16. <option>'.$mlotek.'</option>
  17.        <option>JEST</option>
  18.        <option>BRAK</option>
  19.    </select><br>Kilof
  20.        <select name="kiloff">
  21. <option>'.$kilof.'</option>
  22.        <option>JEST</option>
  23.        <option>BRAK</option>
  24.    </select><input type="submit" name="submit" value="Zapisz" />
  25. </form>';
  26. }
  27.  
  28. if ($_GET['akcja'] == "krok2") {
  29.  
  30. $mlotekk = $_POST['mlotekk'];
  31. $kiloff = $_POST['kiloff'];
  32. $options = "options.txt";
  33. $plik = fopen($options, "w");
  34.    
  35.      if (fwrite($plik, $mlotekk . "|" . $kiloff) !== FALSE) echo "Zapis do pliku zakończył się powodzeniem... <a href='formularz.php'>Powrót</a>";
  36.        else echo "Zapis do pliku się nie powiódł...";
  37.      
  38.      fclose($plik);
  39. }
  40. ?>


Spróbuj z tym

A tak pozatym to skoro to linia 31 to bardziej tyczy się zamkniecia tego 2 otwierania pliku podczas zapisu !
djbit
Cześć, wielki ukłon w waszą stronę. Działa yahoo.gif
melkorm
Cytat
Dalej nic. Komunikat: Warning: fclose(): supplied argument is not a valid stream resource in ...formularz.php on line 31


Kod
<?php

$mlotekk = $_POST['mlotekk'];
$kiloff = $_POST['kiloff'];

$optionss = "options.txt";
$plikk = fopen($optionss, "r");
$dane = fread($plikk, filesize($optionss));
list($mlotek, $kilof) = explode("|", $dane);
fclose($plikk);

echo '<form action="" method="post">Młotek
    <select name="mlotekk">
<option>'.$mlotek.'</option>
        <option>JEST</option>
        <option>BRAK</option>
    </select><br>Kilof
        <select name="kiloff">
<option>'.$kilof.'</option>
        <option>JEST</option>
        <option>BRAK</option>
    </select><input type="submit" name="submit" value="Zapisz" />
</form>';

$options = "options.txt";
if ($plik = fopen($options, "w") && $_POST['submit'])
     {
      if (fwrite($plik, $mlotekk . "|" . $kiloff) !== FALSE) echo "Zapis do pliku zakończył się powodzeniem...";
        else echo "Zapis do pliku się nie powiódł...";
fclose($plik);
       }
      
?>


edit: nie ma to jak nie odświeżyć , po godzinie AFK , strony .... ;p
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.