Autor Zpráva
Pearljam
Profil
Zdravím všechny, už jsem zoufalý, připravil jsem si formulář v HTML , který se odešle pomocí PHP na mail.
V mailu se mi zobrazí všechny informace vyplněné uživatelem, jen z údaje checkboxu se mi vždy objeví jediný ikdyž jich je vybráno více, pravděpodobně se přepíše a zůstane jen poslední. Zkoušel jsem mnoho verzí zápisu, ale už si nevím rady.
ukázka z HTML:
  <input type="checkbox" name="media[]" value="TV">TV
  <input type="checkbox" name="media[]" value="rádio">rádio
  <input type="checkbox" name="media[]" value="tisk">denní tisk
  <input type="checkbox" name="media[]" value="internet">internet

ukázka z PHP:
        $media = $_POST["media"];

        foreach($_POST['media'] as $polozky);
        $email_content.=$polozky."\n";
Keeehi
Profil
Rozliš je v name
media[tv]
media[radio]
...
Pearljam
Profil
Keeehi:
tohle mi nepomohlo, stále se mi v příchozím mailu zobrazuje pouze jedna poslední položka ze všech zatržených ve formuláři.
pravděpodobně to bude chtít ještě nějak změnit formu výpisu, už jsem zkoušel mnoho variant, nemůžu na to přijít.
Dan Charousek
Profil
Pearljam:
Z tohohle není jasné, v čem je problém. Pošli celý script, který to odesílá.
Taps
Profil
Pearljam:
zkus toto
<?
 foreach($_POST['media'] as $index => $polozky){
        $email_content.=$polozky[$index]."\n";
        }
?>
tiso
Profil
Je to naozaj checkbox?
Pearljam
Profil
Dan Charousek:
HTML
  <input type="checkbox" name="media[]" value="TV">TV
  <input type="checkbox" name="media[]" value="rádio">rádio
  <input type="checkbox" name="media[]" value="tisk">denní tisk
  <input type="checkbox" name="media[]" value="internet">internet

PHP
<?php

    if ($_SERVER["REQUEST_METHOD"] == "POST") {

        $name = strip_tags(trim($_POST["name"]));
                $name = str_replace(array("\r","\n"),array(" "," "),$name);
        $email = filter_var(trim($_POST["email"]), FILTER_SANITIZE_EMAIL);
        $phone = trim($_POST["phone"]);
        $media = $_POST["media"];
        $message = trim($_POST["message"]);

        $recipient = "email@email.cz";
        $subject = "Nová zpráva";

        $email_content = "Jméno: $name\n";
        $email_content .= "Email: $email\n";
        $email_content .= "Telefon: $phone\n";
        foreach($_POST['media'] as $polozky);
        $email_content.= "Media: $polozky\n\n";
        $email_content .= "Zpráva:\n$message\n";

        $email_headers = "From: $email <$email>";

?>
Taps
Profil
Pearljam:
opravdu ti nepomohla ani má rada? [#5] Taps
<?php
 
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
 
        $name = strip_tags(trim($_POST["name"]));
                $name = str_replace(array("\r","\n"),array(" "," "),$name);
        $email = filter_var(trim($_POST["email"]), FILTER_SANITIZE_EMAIL);
        $phone = trim($_POST["phone"]);
        $media = $_POST["media"];
        $message = trim($_POST["message"]);
 
        $recipient = "email@email.cz";
        $subject = "Nová zpráva";
 
        $email_content = "Jméno: $name\n";
        $email_content .= "Email: $email\n";
        $email_content .= "Telefon: $phone\n";
        foreach($_POST['media'] as $index => $polozky){
        $email_content.= "Media:". $polozky."\n\n";
        }
        $email_content .= "Zpráva:\n$message\n";
 
        $email_headers = "From: $email <$email>";
Pearljam
Profil
Taps:

když vložím do PHP jak to uvádíš, příjde mi v mailu tohle (zatrženo TV a internet) :

Media:T

Media:i
Pearljam
Profil
Pearljam:
Media:T
>
Media:i

Vypisuje to počáteční písmena, myslel jsem že mi to vypíše hodnotu z value, jsem začátečník a je to můj první formulář, který jsem dal dohromady.
Taps
Profil
Pearljam:
Kod jsem upravil
Pearljam
Profil
Taps:
Děkuji mnohokrát, teď už se údaje z chcekboxu vypisují správně, ještě jednou díky.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: