Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Formularz kontaktowy, znikanie zmiennych podczas walidacji
Forum PHP.pl > Forum > PHP
100688
Witam, pisze w sprawie problemu odnośnie zapytania w jaki sposob rozwiazac owy problem smile.gif

Posiadam 2 pliki php:

1 plik oferta.php w którym mam 2 obrazki wyświetlane poprzez:
<a href="images/modern.jpg" alt="" /></a>

2 plik to pytanie.php w ktorym znajduje sie podstawowy formularz kontaktowy

Moje pytanie:

W jaki sposób wykonać funkcje, aby przy kliknieci np w obrazek nr 1 pliku oferta.php otworzył się pytanie.php w nowej karcie z tym obrazkiem gdzieś z boku. Moje pytanie odnosi się tylko do tego w jaki sposob wyświetlać obrazki w tym formularzu w zależności w który obrazek klikne.

Pozdrawiam
CuteOne
A nie lepiej zapisać ścieżki do grafik w postaci tablicy??
oferta.php:
  1. $images = array('images/modern.jpg', 'images/modern2.jpg');


innplik.php
  1. include 'oferta.php';
  2.  
  3. echo '<a href="'.$images[0].'" target="_blank"><img src="'.$images[0].'" /></a>';
  4. echo '<a href="'.$images[1].'" target="_blank"><img src="'.$images[1].'" /></a>';
100688
hej dzięki za szybką odpowiedz ! właśnie sie bawie tym i fajnie to działa tylko nie do końca o to mi chodzilo.

Problem w tym, że będąc w galerii po kliknięciu w dane zdjęcie nie ma się otwierać w nowej karcie tak jak to wynika z tego skryptu teraz, tylko ma się otworzyć w nowej karcie moj maly skrypt - formularz kontaktowym w ktorym ma się pojawić to zdjecie w ktore kliknelismy. Czyli np. w galerii klikam na zdjecie nr 3, a w nowej karcie otwiera mi sie formularz kontaktowy z tym zdjęciem.

P.S rozwiącanie za pomocą array jest super tylko nie weim do konca jak go przerobić.

P.S podziwiam takie osoby jak Pan, które z głowy pomagają innym, pozdrawiam !
wookieb
Następnym razem zapoznaj się Temat: Jak poprawnie zatytulowac watek bo inaczej za kolejne tak bzdetne nazwy tematu zamknę na zawsze.
Niktoś
echo '<a href="'.$images[0].'" target="/mojastrona.php"><img src="'.$images[0].'" /></a>'
To po prostu zmień target na adres strony,którą chcesz otworzyć.
Jeśli chcesz wyświetlić te samo zdjęcie w formularzu to możesz zrobić tak:
  1. echo '<a href="'.$images[0].'" target="mojastrona.php?param=0"><img src="'.$images[0].'" /></a>';
  2.  
  3. echo '<a href="'.$images[1].'" target="mojastrona.php?param=1"><img src="'.$images[1].'" /></a>';


Na stronie formularza robisz tak:
  1. #
  2. include 'oferta.php';
  3. $numObrazka=$_GET['param'];
  4. <img src="'.$images[$numObrazka].'" />


Może jakieś błędy,tutaj popełniłem ,ale głównie metoda powinna być dobra.
100688
Próbowałem w różny sposób zmieniać ten parametr "target", ale caly czas po kliknieciu w zdjecie nie otwiera sie formularz z tym zdjeciem tylko otwiera sie zdjecie w nowym oknie :/

Zdjęcia w galeria.php wyświetlam za pomocą:

Kod
<?php
        include 'lista.php';
echo '<a href="'.$images[0].'" target="index.php?param=0"><img src="'.$images[0].'" /></a>';

echo '<a href="'.$images[1].'" target="index.php?param=1"><img src="'.$images[1].'" /></a>';
?>


zaś plik lista.php wygląda tak:

Kod
<?php
        $images = array('images/modern.jpg', 'images/modern2.jpg');

        ?>



Galeria ładnie wyświetla sobie te zdjęcia ale po kliknięciu któregoś, nie otwiera mi się formularz (plik index.php) tylko otwiera się to zdjęcie w nowym oknie :/
CuteOne
  1. <?php
  2. include 'lista.php';
  3. echo '<a href="index.php?param=1&grafika=0" target="_blank"><img src="'.$images[0].'" /></a>';
  4. echo '<a href="index.php?param=1&grafika=1" target="_blank"><img src="'.$images[0].'" /></a>';
  5. ?>


  1. include 'lista.php';
  2.  
  3. if(array_key_exists($_GET['grafika'], $images)) {
  4.  
  5. echo '<img src="'.$images[$_GET['grafika']].'" />';
  6. }


100688
O to chodziło smile.gif Rewelacja :]

A czy można automatycznie dodać nazwę lub numer klikniętego obrazka do tematu wiadomości ?

Posiadam taki kod do generowania tytułu wiadomości:

Kod
// tytuł wiadomości
                $tytul = 'Formularz kontaktowy';


lub może łatwiej będzie dodać w wysłanej wiadomości link do tego zdjęcia ?

albo bezpośrednio do pola input "temat":

Kod
// sprawdzenie treści wprowadzonych
            $imie = htmlspecialchars(stripslashes(strip_tags(trim($_POST["imie"]))), ENT_QUOTES);
            $nazwisko = htmlspecialchars(stripslashes(strip_tags(trim($_POST["nazwisko"]))), ENT_QUOTES);
            $email = htmlspecialchars(stripslashes(strip_tags(trim($_POST["email"]))), ENT_QUOTES);
            [b]$temat = htmlspecialchars(stripslashes(strip_tags(trim($_POST["temat"]))), ENT_QUOTES);[/b]
            $tresc = htmlspecialchars(stripslashes(strip_tags(trim($_POST["tresc"]))), ENT_QUOTES);


Pozdrawiam w szczególności CuteOne
CuteOne
To już są podstawy... mała podpowiedź operacje na tablicy $_GET. Podał bym ci gotowca ale już takowego otrzymałeś... teraz włącz mózg i do dzieła
100688
Dzięki ;] Temat uważam za zamknięty. Pozdrawiam.

Udało się, mam nadzieje ze moje rozwiazanie jest ok. dopisałem 2 zmienne i je wyswietlilem, teraz tylko pojawia się problem, gdy nie wypełnie wszytkich pól i klikne "wyslij" to jak gdyby resetuje mi to wszystko, że z nazwy url likwiduje mi dalszy ciąg adresu z parametrami, co powoduje że obrazek znika i moje pola które wymyslilem smile.gif

Kod
    
    <h2>Formularz kontaktowy</h2>
        <?php
include 'lista.php';

    echo 'Nazwa: '.$_GET['nazwa'].'<br> Model: '.$_GET['model'].'';
      

?>
        <?php


        
        $twojemail = ''; // twój adres e-mail

        if ($_POST['wyslane']) {

            // filtrowanie treści wprowadzonych przez użytkownika
            $imie = htmlspecialchars(stripslashes(strip_tags(trim($_POST["imie"]))), ENT_QUOTES);
            $nazwisko = htmlspecialchars(stripslashes(strip_tags(trim($_POST["nazwisko"]))), ENT_QUOTES);
            $email = htmlspecialchars(stripslashes(strip_tags(trim($_POST["email"]))), ENT_QUOTES);
            $temat = htmlspecialchars(stripslashes(strip_tags(trim($_POST["temat"]))), ENT_QUOTES);
            $tresc = htmlspecialchars(stripslashes(strip_tags(trim($_POST["tresc"]))), ENT_QUOTES);
            $kopia = $_POST["kopia"];
      

            // system sprawdza czy wszystkie pola zostały wypełnione
            if (!$imie) {
                $blad++;
                echo '<p class="blad">Proszę wpisać swoje Imię.</p>';
            }
            if (!$nazwisko) {
                $blad++;
                echo '<p class="blad">Proszę wpisać swoje Nazwisko.</p>';
            }
            if (!eregi("^[0-9a-z_.-]+@([0-9a-z-]+\.)+[a-z]{2,4}$", $email)) {
                $blad++;
                echo '<p class="blad">Proszę wprowadzić poprawnie adres email.</p>';
            }
            if (!$temat) {
                $blad++;
                echo '<p class="blad">Proszę wpisać temat wiadomości.</p>';
            }
            if (!$tresc) {
                $blad++;
                echo '<p class="blad">Proszę wpisać treść wiadomości.</p>';
            }


            // jeżeli nie ma błędu, to wiadomość e-mail zostaje wysłana
            if ($blad == 0) {

                // niezbędne nagłówki do wyświetlania wiadomości HTML
                $naglowki = "MIME-Version: 1.0" . "\r\n";
                $naglowki .= "Content-type:text/html;charset=utf-8" . "\r\n";

                // opcjonalne nagłówki
                $naglowki .= 'From: <'.$email.'>' . "\r\n";
                $naglowki .= 'Cc: <'.$twojemail.'>' . "\r\n";

                // tytuł wiadomości
                $tytul = 'Formularz kontaktowy';

                // całkowita treść wiadomości
                $tresc = nl2br($tresc);
                $wiadomosc = <<< KONIEC
                <html>
                    <p><strong>Imię:</strong> $imie</p>
                    <p><strong>Nazwisko:</strong> $nazwisko</p>
                    <p><strong>Temat:</strong> $temat</p>
                    <p><strong>Treść wiadomości:</strong><br />$tresc</p>
                    <p><strong>Wersja:</strong><br />$wersja</p>
                </html>
KONIEC;
                // wysyłanie wiadomości e-mail
                $wynik = mail('<'.$email.'>', $tytul, $wiadomosc, $naglowki);

                // wysyłane kopi wiadomości
                if ($kopia) {
                    $naglowki2 = "MIME-Version: 1.0" . "\r\n";
                    $naglowki2 .= "Content-type:text/html;charset=utf-8" . "\r\n";
                    $naglowki2 .= 'From: <'.$twojemail.'>' . "\r\n";
                    $tytul2 = 'Kopia - Formularz kontaktowy';

                    $wynik = mail($email, $tytul2, $wiadomosc, $naglowki2);
                }

                // komunikat potwierdzający wysłanie wiadomości bądź nie
                if ($wynik) {
                    echo '<p class="powodzenie">Wiadomość została wysłana</p>';
                } else {
                    echo '<p class="blad">Wiadomość nie została wysłana</p>';
                }
            }

        }

// tworzenie formularza HTML
        echo <<< KONIEC
    <form class="form" action="index.php" method="post">
    <input type="hidden" name="wyslane" value="TRUE" />

    <p>
        <div class="label"><label for="imie">Imię</label></div>
        <input type="text" name="imie" />
    </p>
    <p>
        <div class="label"><label for="nazwisko">Nazwisko</label></div>
        <input type="text" name="nazwisko" />
    </p>
    <p>
        <div class="label"><label for="email">E-mail</label></div>
        <input type="text" name="email" />
    </p>
    <p>
        <div class="label"><label for="temat">Temat</label></div>
        <input type="text" name="temat" value="z"  />
    </p>
    <p>
        <div class="label"><label for="tresc">Wiadomość</label></div>
        <textarea id="tresc" name="tresc"></textarea>
    </p>
    <p>
        <input type="checkbox" name="kopia" value="1" /> Prześlij mi kopię wiadomości
    </p>
    
    
    

KONIEC;
        
        echo <<< KONIEC
    <p class="submit"><input type="submit" value="Wyślij wiadomość" /></p>
    </form>
KONIEC;

        ?>
        
        
        <?php
if(array_key_exists($_GET['grafika'], $images)) {

     echo '<img src="'.$images[$_GET['grafika']].'" />';
    
}
?>

</body>
</html>
wookieb
Temat: Jak poprawnie zatytulowac watek

// otwieram
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.