Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Formularz php - opcja "select" nie wysyła danych
Forum PHP.pl > Forum > Przedszkole
panna_nikt
Witam serdecznie

mam mały problem z formularzem.
Zrobiłam listę rozwijaną (tak wygląda jak poniżej - zał. 1)), no i ta lista nie wysyła danych.
Method action to"sendmail.php" i też go poniżej zamieszczam (zał. 2).
Gdyby był mi ktoś chętny pomóc, byłabym bardzo wdzięczna thumbsupsmileyanim.gif

Zał.1)

<select name="id"
onchange="top.location.href=this.options[this.selectedIndex].value">

<option value="index.php?id=bialystok"> Białystok</option>
<option value="index.php?id=bydgoszcz"> Bydgoszcz</option>
<option value="index.php?id=czestochowa">Częstochowa</option>
<option value="index.php?id=gdansk">Gdańsk</option>
<option value="index.php?id=gdynia">Gdynia</option>
<option value="index.php?id=katowice">Katowice</option>
<option value="index.php?id=kielce">Kielce</option>
<option value="index.php?id=krakow">Kraków</option>
<option value="index.php?id=lublin">Lublin</option>
<option value="index.php?id=lodz">Łódź</option>
<option value="index.php?id=poznan">Poznań</option>
<option value="index.php?id=radom">Radom</option>
<option value="index.php?id=sosnowiec">Sosnowiec</option>
<option value="index.php?id=szczecin">Szczecin</option>
<option value="index.php?id=torun">Toruń</option>
<option value="index.php?id=warszawa">Warszawa</option>
<option value="index.php?id=wroclaw">Wrocław</option>

</select>

Zał 2.)

<?php
mb_internal_encoding("UTF-8");

$do = 'MÓJ ADRES EMAIL'; //ustawiasz adres email, na ktory maja byc wysylane wiadomosci

mb_internal_encoding("UTF-8");



$nick = trim($_POST['nick']); //usuwasz spacje na poczatku i na koncu wpisu (unikasz pustego wpisu)

$rok = trim($_POST['rok']);

$telefon = trim($_POST['telefon']);

$email = trim($_POST['email']); //usuwasz spacje na poczatku i na koncu wpisu (unikasz pustego wpisu)

$przedzial = trim($_POST['przedzial']);

$miasto = trim($_POST[id']);

$tresc = trim($_POST['tresc']); //usuwasz spacje na poczatku i na koncu wpisu (unikasz pustego wpisu)

function cleanPosUrl($str) {
return stripslashes($str);
}

$headers1 = "MIME-Version: 1.0\r\n";
$headers1 .= "Content-type: text/html; charset=UTF-8\r\n";
$headers1 .= "From: " . $email . "\r\n";
$headers1 .= "Reply-To: " . $email . " \r\n";
$subject1 = "Formularz zapisu: " . $nick;

$user = $do;
$message .= cleanPosUrl('Imię i nazwisko: ' . $_POST['nick']) . "<br>";
$message .= cleanPosUrl('Rok: ' . $_POST['rok']) . "<br>";
$message .= cleanPosUrl('Telefon: ' . $_POST['telefon']) . "<br>";
$message .= cleanPosUrl('Email: ' . $_POST['email']) . "<br>";
$message .= cleanPosUrl('W jakim wieku powinny być interesujące Cię osoby?: ' . $_POST['przedzial']) . "<br>";
$message .= cleanPosUrl('Miasto: ' . $_POST['id']) . "<br>";
$message .= cleanPosUrl('Uwagi: ' . $_POST['tresc']);

if (mail($user, $subject1, $message, $headers1)) {
echo "Dziękujemy za wysłanie formularza! <br> W najbliższym czasie jeden z naszych pracowników skontaktuje się z Państwem.";
} else {
"WIADOMOŚĆ NIE ZOSTAŁA WYSŁANA. PROSZĘ SPRÓBOWAĆ PONOWNIE";
}
?>

Witam

Czy ktoś by mi w tym pomógł, co opisałam powyżej smile.gif
Ja już nie wiem, czy dodać funkcję array, czy zrobić "selected" dla tych wszystkich opcji w formularzu, bo tak to wysyłam i wszystkie dane idą, tylko te z funkcją "select" i listą rozwijaną nie sad.gif

pozdrawiam

Panna Nikt
przemek_el
Wysyłasz dane metodą GET a odwołujesz się do danych z POST.
Wyślij cały kod formularza to postaram się pomóc.

Czemu ma służyć:
  1. <select name="id" onchange="top.location.href=this.options[this.selectedIndex].value">

chodzi mi o akcję onchange. Chcesz od razu po wybraniu miasta wysyłać formularz?
KotWButach
dawaj kod w znaczniki forumowe PHP.
b4rt3kk
Mała uwaga techniczna:

  1. top.location.href='index.php?id='+this.options[this.selectedIndex].value;


  1. <option value="bialystok"> Białystok</option>
  2. <option value="bydgoszcz"> Bydgoszcz</option>
  3. <option value="czestochowa">Częstochowa</option>
  4. // itd.


Poza tym, to jest przekierowanie, a nie submit formularza, tak więc tablica $_POST nie zostaje utworzona, możesz przechwycić jedynie $_GET['id'] i to wszystko.

Musisz opakować całość formularza pomiędzy znaczniki form:

  1. <form action="index.php" name="mojForm" method="POST">
  2. // tresc formularza
  3. </form>


I zastąpić akcję:

  1. onchange="document.mojForm.submit();"
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.