• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Zurück zur Hauptseite

ChiliSchaf

Neues Mitglied
Hallo allerseits - ich hoffe ich bin im html-teil des Forums richtig...

es geht um diesen Quellcodeausschnitt:
PHP:
<?
function data_add(){
    $database = new Database();
    ?>
    <form action="" method="post">
      <table width="100%" height="50" border="0">
        <td>
          <h2>Add Data:</h2>
        </td>
        <tr>
          <td>
            <input name="type" type="text"><br> 
            
          </td>
        </tr>
        </table>
        <table width="100%" height="225" border="0">
          <td valign="bottom" > 
            <input name="saveAndAdd" type="submit" value="save and add next">
            <input name="save" type="submit" value="save and exit"> 
            <input name="backToMenu" type="submit" value="exit without saving">
          </td>
      </table>    
    </form>
    <?php
    if(isset($_POST["saveAndAdd"])){
        $type = $_POST["type"];
        $types = $database->loadAllTypes();
    
        //Checks if the new type exists already
        $save = true;
        for($i = 0; $i < count($types); $i++){
            if($type == $types[$i]){
                echo "This name exists already. Please chose 
                        another name!";
                $save = false;
                break;
            }
        }
        if ($save) {
            $database->saveType($type);
               echo "type ".$type." was saved successfully.";
        }
    }else if(isset($_POST["save"])){
        $type = $_POST["type"];
        $types = $database->loadAllTypes();
    
        //Checks if the new type exists already
        $save = true;
        for($i = 0; $i < count($types); $i++){
            if($type == $types[$i]){
                echo "This name exists already. Please chose 
                        another name!";
                $save = false;
                break;
            }
        }
        if ($save) {
            $database->saveType($type);
               echo "type ".$type." was saved successfully.";   
        }
    }        
}
Ich möchte in dieser Datei (module01_index.php) Daten speichern, die eingegeben werden. Dazu gebe ich dem User 3 Buttons, einmal speichern und weitere Daten hinzufügen und dann noch speichern und zurück und einfach zurück. Problem ist das "zurück" und das "speichern und zurück". Ich möchte, dass beim klick auf den jeweiligen Button, gespeichert wird und dann zurück in die main_index.php gesprungen wird. Blöderweise funktioniert das nicht. Es wird zwar gespeichert, aber ich weiß nicht, wie ich mit einem submit-button und ohne javascript kommen kann...
Hat jemand eine Idee wie ich die letzten beiden Buttons so ändern kann (oder die funktion die auf das "save" reagiert), so dass wieder in die main_index gesprungen wird?

Hier noch die main_index.php falls benötigt:

PHP:
(...)
/**
 * Header and Footer
 */
function printHeader(){
    include("templates/header.tpl");
}

function printFooter(){
  include("templates/footer.tpl");
}

/**
 * every action for each modul is startet in here
 * @return -
 */
function moduleActions() {

    if (!isset($_GET["param"])) {
          echo "param is not set";
          
    }else if ($_GET["param"] == "add") {
          $modulname = $_GET["loadedModule"];
        $function = $modulname._add;
        $function();
    }
    
}


printHeader();
moduleActions();
printFooter();
 
naja du koenntest dsa formular an eine weitere datei weiterleiten, ueberpruefen welcher button angeklickt wurde und dann mittels <meta> tags im header bereich der html seite zu der jeweiligen seite weiterleiten.

also wenn buttons eins geklickt wurde:
Code:
<meta http-equiv="refresh" content="0; URL=index.php" />
und wenn buttons 2 angeklickt wurde aendert sich eben nur der URL teil des tags. so wuerde ich es machen.

EDIT: bei form action natuerlich zu der datei leiten die das ganze auswertet.
 
Das ist eigentlich ganz einfach.
Um mit PHP zu einer Datei/Seite weiterzuleiten, kannst du folgendes nehmen:

PHP:
header('location: seite.html');

Du musst aber beachten, dass vorher im Quelltext kein einziges Zeichen HTML (oder sonstwas) ausgegeben werden darf.
 
wenn du zur vorherigen seite gehen willst, benutzt du:
header("location:".$_SERVER["HTTP_REFERER"]);

der referer ist der link, woher der user kommt und wird vom browser an den server übergeben (kann also ausgeschaltet werden und du solltest es deshalb mit einer if-abfrage vorher checken)

wenn du auf eine feste datei springen möchtest, siehe post vor mir...
bei dir eben main_index.php statt seite.html
 
Zurück
Oben