Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Skrypt który na podstawie wyboru "radio" wyszuka obrazek
Forum PHP.pl > Forum > Gotowe rozwiązania > Szukam
zaqwe
Witam,
Czy pomoże mi ktoś z napisaniem skryptu? Już wyjaśniam o co chodzi.
Otóż mam taki tam kod php:
Kod
<div class="left">

    <form action="index.php" method="get">

<div id="wysrodkowanie">


    <div id="wewnetrznes">

        <img src="img/oko1.png" /><br /> <input type="radio" name="oczy" value="1" />
    </div>

    <div id="wewnetrznes">

        <img src="img/oko2.png" /><br /> <input type="radio" name="oczy" value="2" />
    </div>

    <div id="wewnetrznes">
        <img src="img/oko3.png" /><br /> <input type="radio" name="oczy" value="3" />
    </div>

</div>
<div id="wysrodkowanie">


    <div id="wewnetrznes">

        <img src="img/nos1.png"/><br /> <input type="radio" name="nos" value="1" />
    </div>

    <div id="wewnetrznes">

        <img src="img/nos2.png"/><br /> <input type="radio" name="nos" value="2" />
    </div>

    <div id="wewnetrznes">
        <img src="img/nos3.png"/><br /> <input type="radio" name="nos" value="3" />
    </div>

</div>
<div id="wysrodkowanie">


    <div id="wewnetrznes">

        <img src="img/zeby1.png"/><br /> <input type="radio" name="zeby" value="1" />
    </div>

    <div id="wewnetrznes">

        <img src="img/zeby2.png"/><br /> <input type="radio" name="zeby" value="2" />
    </div>

    <div id="wewnetrznes">
        <img src="img/zeby3.png"/><br /> <input type="radio" name="zeby" value="3" />
    </div>

</div>

<div id="zatwierdz">
        <button type="submit" value="Create"><img src="img/ok.gif"/></button>


</div>

</div>

<div class="right">
    <?php

  
  echo "<img src= -------------------T-U-T-A-J----------------------;
  
     ?>

</div>
</div>
</form>


</body>

</html>


i wszystko na ten moment działa. Jak widać stronka umożliwia wybrać jedną opcje (input radio) w każdej grupie (a są trzy: oczy, nos,zeby).
Teraz po kliknięciu w przycisk zatwierdź, chcę aby skrypt wyświetlił w miejscu "T-U-T-A-J" konkretny obrazek, czyli:
jeśli osoba wybierze np.: 2 opcje z "oczy" i 1 z "nos" i 3 z "zeby" to wyświetlił obrazek: 213.png. Mam wszystkie kombinacje zdjęć(jest ich 27).
Kod php ze stronką mam zapisany na serwerze jako index.php i nie wiem czy w polu: form action="index.php" <--- tak ma być czy plik ze skryptem "skrypt.php"?
Dziś cały dzień zmarnowałem na czytanie, próbowanie aby ten skrypt zatrybił ale totalnie się gubię w tych pętlach.
Czy byłby ktoś dla kogo ten skrypt wydawałby się banalny? Byłbym bardzo wdzięczny za pomoc.
Pozdrawiam
dominik52
Nie bardzo rozumiem: jeżeli wybierze już te 3 fotografie to mamy je wyświetlić te trzy wybrane? np wybrano zdjęcia kot.jpg pies.jpg słoń.jpg i te trzy foty przesyłamy i wyświetlamy?

co do opcji który plik to zależy od Ciebie, od logiki tej aplikacji, co będzie działo się dalej? bo można je przesłać na nową stronę albo można je wyświetlić w tej samej
zaqwe
Hej,
Dzięki za odzew. Już tłumacze:
Nie wybieramy fotografii tylko opcje. Czyli wybierzemy wybór np.w jednej grupie 3 w drugiej 2 i w trzeciej 1 i wtedy program pobiera gotowe zdjęcie 321.png które mam gotowe na serwerze i władowuje je na miejsce. Ogólnie użytkownik musi wybrać 1 opcje w trzech grupach. Bo program buduje twarz czyli, użytkownik musi wybrać jakieś oczy, nos i zęby żeby powstało. I kombinacje zdjęć mam gotową czyli:
111.png, 112.png, 113.png, 121.png, 122.png, 123.png, 131.png itd.... jest ich 27.

Prościej mówiąc skrypt miałby rozpoznawać że osoba wybrała np.: 1 z 3 opcji, poniżej 3 z 3 i poniżej 3 z 3 i program wie że musi załadować zdjęcie 133.png
Jak coś nie jasne, to pytajcie.
dominik52
To jeszcze jedno pytanie mam: czy te zdjęcia nakładają się na siebie? czy np układam 3 zdjęcia jedno pod drugim? bo z tego co widzę to są png, więc pytam, bo podejrzewam że mogą się nakładać.
zaqwe
Ogólnie zdjęcie ma się ładować tylko jedno. Jeśli wybieram sobie te 3 opcje i kliknę w zatwierdź to skrypt powinien wygenerować jedno zdjęcie odpowiadające wyborowi. Skrypt ma wiedzieć, że jeżeli ja wybieram np.: oczy value="1" i nos value="3" i zeby value="1" to ma załadować na tą stronkę jedno zdjęcie (które ja już mam przygotowane) czyli 131.png - które fizycznie będzie na serwerze:)
dominik52
Poniżej wklejam kod, działa bo sprawdziłem ale na 3 fotkach, więcej nie chciało mi się tworzyćwink.gif

Problem polegał na tym że musieliśmy w pętli przeszukać nasze pliki, no i do tego potrzebna była nam jakaś struktura danych, ja zrobiłem najprostszą tablicę z nazwami plików. Oczywiście w programowaniu wszystko zależy od potrzeb i logiki programu lub aplikacji. Można była korzystać np też z bazy danych. Krótko mówiąc:
1. pobieramy wartości z inputów
2. tworzymy nazwę naszego zdjęcia z którym w pętli będziemy porównywać dane z tablicy
3. tworzymy tablicę i wpisujemy dane czyli nazwy zdjęć
4. zliczamy ilość danych w tablicy
5. budujemy pętlę for która się wykona tyle razy aż napotka w tablicy zdjęcie o takiej nazwie jak nasz wybór
6. jeżeli tak się stanie wyświetli zdjęcie i podstawi do zmiennej sterującej wartość "ilość danych tablicy + 1", przerwiemy pętlę jednym słowem.

  1. <div class="left">
  2. <form action="test1.php" method="get">
  3. <div id="wysrodkowanie">
  4. <div id="wewnetrznes">
  5. <img src="oko1.png" /><br />oko1 <input type="radio" name="oczy" value="1" />
  6. </div>
  7. <div id="wewnetrznes">
  8. <img src="oko2.png" /><br />oko2 <input type="radio" name="oczy" value="2" />
  9. </div>
  10. <div id="wewnetrznes">
  11. <img src="oko3.png" /><br />oko3 <input type="radio" name="oczy" value="3" />
  12. </div>
  13. </div>
  14. <div id="wysrodkowanie">
  15. <div id="wewnetrznes">
  16. <img src="nos1.png"/><br />nos1 <input type="radio" name="nos" value="1" />
  17. </div>
  18. <div id="wewnetrznes">
  19. <img src="nos2.png"/><br />nos2 <input type="radio" name="nos" value="2" />
  20. </div>
  21. <div id="wewnetrznes">
  22. <img src="nos3.png"/><br />nos3 <input type="radio" name="nos" value="3" />
  23. </div>
  24. </div>
  25. <div id="wysrodkowanie">
  26. <div id="wewnetrznes">
  27. <img src="zeby1.png"/><br />zeby1 <input type="radio" name="zeby" value="1" />
  28. </div>
  29. <div id="wewnetrznes">
  30. <img src="zeby2.png"/><br />zeby2 <input type="radio" name="zeby" value="2" />
  31. </div>
  32. <div id="wewnetrznes">
  33. <img src="zeby3.png"/><br />zeby3 <input type="radio" name="zeby" value="3" />
  34. </div>
  35. </div>
  36.  
  37. <div id="zatwierdz">
  38. <input name="zapisz" class="zapisz" type="submit" value="Zapisz">
  39. </div>
  40. </form>
  41. </div>
  42.  
  43. <div class="right">

  1. <?php
  2. $oczy = $_GET['oczy'];
  3. $nos = $_GET['nos'];
  4. $zeby = $_GET['zeby'];
  5.  
  6. $wejscie = $oczy.$nos.$zeby.".png";
  7.  
  8. $tablica = array('111.png', '112.png', '113.png', '121.png', '122.png', '123.png', '131.png', '132.png', '133.png',
  9. '211.png', '212.png', '213.png', '221.png', '222.png', '223.png', '231.png', '232.png', '233.png',
  10. '311.png', '312.png', '313.png', '321.png', '322.png', '323.png', '331.png', '332.png', '333.png');
  11.  
  12. $tablica_count = count($tablica);
  13.  
  14. for ($i = 0; $i <= $tablica_count; $i++) {
  15. if($wejscie == $tablica[$i]){
  16. echo "<img src='".$tablica[$i]."'>";
  17. $i = $tablica_count + 1;
  18. }
  19.  
  20. }
  21. ?>

  1. </div>
  2. </body>
  3. </html>
zaqwe
Kolego Wielkie Dzięki za pomoc. Nie wiem jak Ci się odwdzięczyćsmile.gif
Działa ! smile.gif
Ale mam jeszcze pytanko jak zrobić aby to zdjęcie wyświetlało się na jednej stronie, czyli tak aby wklejało się w tej części right na tej samej stronie?
Da radę tak zrobić?
dominik52
Pewnie że da radę, w formularzu musisz dać action=index.php, czyli musi lecieć do tego samego pliku; skrypt w tagach <?php ?> może byc np w divie right, i powinno po kliknięciu przycisku przeładować stronę, a w divie right wykona się skrypt czyli wyświetli się zdjęcie.
Ten kod co przesłałem właśnie tak się wykonuje.

Możesz jeszcze pomyśleć nad zabezpieczeniem formularza czyli wymuszenie na użytkowniku aby zaznaczył na pewno to co chcemy.
zaqwe
Ok, wszystko działa:)
Dzięki jeszcze raz, bez Twojej pomocy bym sobie nie poradził.
Pozdrawiam
dominik52
Spoko nie ma kłopotu:)

pozdrawiam i polecam się
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-2024 Invision Power Services, Inc.