Autor Zpráva
tozi
Profil
Ahojte, mám problém z formulárom.
Mám html formulára:
<form action="feed.php" method="POST">
<label for="edit-submitted-vorname">Vorname: <span class="form-required" title="Dieses Feld wird benötigt.">*</span></label>
    <input type="text" name="Vorname" maxlength="128" />
    <?php echo $dataError['error_Vorname']; ?>

    <label for="edit-submitted-nachname">Nachname: <span class="form-required" title="Dieses Feld wird benötigt.">*</span></label>
    <input type="text" name="Nachname" maxlength="128" />
    <?php echo $dataError['error_Nachname']; ?>

    <label for="edit-submitted-firma">Firma: <span class="form-required" title="Dieses Feld wird benötigt.">*</span></label>
    <input type="text" name="Firma" maxlength="128" />
    <?php echo $dataError['error_Firma']; ?>

    <label for="edit-submitted-e-mail">E-Mail: <span class="form-required" title="Dieses Feld wird benötigt.">*</span></label>
    <input type="text" name="E-Mail" maxlength="128" />
    <?php echo $dataError['error_E-Mail']; ?>

    <label for="edit-submitted-feedback">Feedback: <span class="form-required" title="Dieses Feld wird benötigt.">*</span></label>
    <textarea name="area"></textarea>
    <?php echo $dataError['error_area']; ?>
    <div class="clear">&nbsp;</div>
<input type="button" name="filled" value="Speichern" id="submitbtn" class="form-submit">


</form>

Ďalej php feed.php
<?php

error_reporting(0);



// Formular bol odoslany
if ($_POST['filled']) {
    // Zbierame data z formu
    $data = array(
    

            'Vorname'          => $_POST['Vorname'],
            'Nachname'          => $_POST['Nachname'],
            'Firma' => $_POST['Firma'],
            'E-Mail'           => $_POST['E-Mail'],
            'area' => $_POST['area'],
            'filled' => $_POST['filled'],
            );


    
    // Checkovanie inputov ci su vyplnene
    $dataError = array();
    if (empty($data['Vorname'])) {
        $dataError['error_Vorname'] = '<div class="chybova">Fehler</div>';
    }

    if (empty($data['Nachname'])) {
        $dataError['error_Nachname'] = '<div class="chybova">Fehler</div>';
    }
    
    if (empty($data['Firma'])) {
        $dataError['error_Firma'] = '<div class="chybova">Fehler</div>';
    }
    
    if (empty($data['E-Mail'])) {
        $dataError['error_E-Mail'] = '<div class="chybova">Fehler</div>';
    }
    
    if (empty($data['area'])) {
        $dataError['error_area'] = '<div class="chybova">Fehler</div>';
    }
    
    
    // Mame error?
    if (empty($dataError)) {
        $zahlavie = "Content-Type: text/html; charset=UTF-8 \n"; 
        $message = '
                    
                    <table cellpadding="5" border="0">
                    <tr>
                    <td bgcolor="#f4f4f4">Vorname: <strong>'.$data['Vorname'].'</strong></td>
                    </tr>
                    
                    <tr>
                    <td bgcolor="#e6e6e6">Nachname: <strong>'.$data['Nachname'].'</strong></td>
                    </tr>
                    
                    <tr>
                    <td bgcolor="#f4f4f4">Firma: <strong>'.$data['Firma'].'</strong></td>
                    </tr>
                    
                    <tr>
                    <td bgcolor="#e6e6e6">E-Mail: <strong>'.$data['E-Mail'].'</strong></td>
                    </tr>
                    
                    <tr bgcolor="#e6e6e6">
                    <td><b>Vaša správa:</b></td>
                    <td colspan="2">'.$data['area'].'</td>
                    </tr>
                    </table>
                    

                    ';
            
              if (mail('tozixx@gmail.com', 'Feedback', $message, $zahlavie, '-foffice@cordes-consulting.at')) {
                      echo '<div class="odoslane">Ihre Feedback wurde gesendet.</div>'; 
              } else {
                    echo '<div class="neodoslane">Ein Fehler ist aufgetreten. Bitte versuchen Sie es später noch einmal.</div>'; 
              }
    } 
} 

if (!$_POST['filled'] OR !empty($dataError)) {
    ?>
<?php }?>

No a na koniec formulár otváram v modal okne colorboxu. Html stránka je tu http://zaluzie-neva.sk/raz/
Stačí kliknúť na feedback pre ukážku.

Vie niekto poradiť kde je chyba alebo mi to aj opraviť? Nedarí sa mi to nájsť a ani vy googliť riešenie.
Keeehi
Profil
Nikde jsi nenapsal, co je vlastně tvůj problém. Jde o to, že se ti to nechce odesílat?

1) Oproti tomu, co jsi napsal sem, tak nemáš u formuláře vyplněný action. (což samotnému odesílání nevadí, ale nebude to směřovat na feed.php)
2) Aby se to odeslalo, stačí změnit typ tlačítka na input type="submit".

Odpověď, že se mi to podařilo odeslat se zobrazí až po dalším načtení stránky a tepr vež když znovu otevřu feedback. Což mi mimo jiné znemožňuje odeslat další feedback dokud stránku znovu nenačtu. Buď bych to oznámení napsal jinam, nebo bych pro odeslání formuláře využil ajaxu.
tozi
Profil
Už som to vrátil. je tam submit. No tak problém je že sa okienko zavrie po kliknutí na odoslať. Pritom tam potrebujem hlášku keď sa niečo nevyplní a po odoslaní že to bolo odoslané. V samotnom formulári to je ale v tomto okne to nejde.
Keeehi
Profil
OK, tak to ho se týká ta poznámka kterou jsem v [#2] dopsal. Využij ajaxu.
tozi
Profil
Problém je že neviem ako. Je to nad moje schopnosti.
Keeehi
Profil
Jeden z návodů co jsem teď našel je na blog.katuscak.cz/clanek/posilani-dat-pres-ajax-v-get-i-post
tozi
Profil
Tak som šiel podľa návodu ale nefunguje to. Ak to robím dobre.
Vytvoril som súbor i.php a vložil tam
<?php
if (isset($_POST['data'])) echo 'Data poslaná metodou POST: <b>' . $_POST['data'] . '</b><br>';
?>

V index.php som nahradil submit týmto
<button onclick="ajax('i.php','zobrazeni','POST','data=POSTDATA')">Poslat POST</button>

No a do head som vložil
 <script language="javascript">
      function ajax (url, id, method, post_data) {
        var objekt = false;
        if (method != "GET" && method != "POST") {method = "GET";} 
        if (window.XMLHttpRequest) {objekt = new XMLHttpRequest();}
        else if (window.ActiveXObject) {
          try {
            objekt = new ActiveXObject("Msxml2.XMLHTTP");
          } catch (eror) {
            objekt = new ActiveXObject("Microsoft.XMLHTTP");}
          }
        if(objekt){
            objekt.open(method,url,true);
            if (method == "POST") {objekt.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");} 
            objekt.onreadystatechange=function(){
                if(objekt.readyState==4 && objekt.status==200){
                    document.getElementById(id).innerHTML = objekt.responseText;
                }
            }
            objekt.send(post_data);
        }    
      }
    </script>
peta
Profil
&& objekt.status==200 -- muze delat problem, pokud to spoustis lokalne, ale naopak na serveru je to nutne

"nefunguje to"
Co to znamena? Co vypisou chybove konzoly, co php. Co to dela atd...

Vzdycky muzes zkusit pouzit google jeste jednou, kdyz prvni reseni selze :)
tozi
Profil
Tak som použil iný script z netu https://github.com/ericmmartin/simplemodal

Prvý formulár feedback funguje,ale druhý sa nechce otvoriť ani len okno...Spravil som kopiu súborov. A prepísal v nich všetko čo sa opakovalo v tom pôvodonom. Ale nefunguje to.

edit: Vrátil som sa nazad k colorboxu.

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: