Antworten auf deine Fragen:
Neues Thema erstellen

erzeugteNavi - delete Button funktioniert nicht!

mathi77

Nicht mehr ganz neu hier

Hi @all,

bin gerade eine navi zu erzeugen, Anzeige funktioniert auch mit den Untermenues...
jedoch möchte ich einen delete Button für jeden Link einfügen... der funzt nicht, es wird keine "welcheID" an mein js-funktion loeschen übergegeben: :'(

Array ( [welcheID] => [loeschen] => X )

wo häng ich hier??

glg Mathi

Code:
<script language="javascript" type="text/javascript">

    
    function loeschen(id){
        if(confirm("Wollen Sie diese Agentur wirklich loeschen?")){
            document.getElementById("welcheID").value = id;
            document.getElementById("frmNavi").submit();
            }
        }            
        
</script>
PHP:
<?php 

$id="";
    
    if(isset($_POST["loeschen"])){
            
            print_r($_POST);
            // loeschen
                $sql = "DELETE FROM tbl_website WHERE(id_website=".$id.")";
            
    // Schickt die Anfrage an die DB und loescht die Daten aus der Tabelle
            $query = mysql_query($sql);// or die("ERROR:".mysql_errror());
        
    // Pruefen ob der neue Datensatz tatsaechlich geloescht wurde
            if (mysql_affected_rows() == 1){
                    echo (' 
                          <p class="sucess">Die Seite wurde erfolgreich gel&ouml;scht!</p>
                         ');                    
                        }
                    else{ 
                        echo ('
                              <p class="error">Die Seite konnte leider<strong>nicht</strong> gel&ouml;scht werden!<br />
                               Bitte wenden Sie sich an Ihren Administrator</p>
                             ');
                        }
                }
                
        echo('<form id="frmNavi" method="POST" action="">
                 <input type="hidden" name="welcheID" id="welcheID" />');
        
        function erzeugeNavi($fid){
        $sql = "SELECT * FROM tbl_website WHERE(fid = ".$fid.") ORDER BY sortID ASC";
        $result =  mysql_query($sql) or die("ERROR: ".mysql_error());
        $text = "";    

        if(mysql_num_rows($result)>0){
            $text=$text.'<ul>';
            while($data = mysql_fetch_object($result)){
                $text.= '

                <li><a href="'.$data->link.'">'.$data->name.'</a><input class="button" type="submit" name="loeschen" id="loeschen" value="X" onclick="loeschen('.$data->id_website.');"/>';
                
                //--------- REKURSION! ---------------
                $text.=erzeugeNavi($data->id_website);
                // -----------------------------------
                
                $text.='</li>';
                        }
            $text.='</ul>';
                    }
        return($text);
        }
    echo (erzeugeNavi(0));    
            echo('</form>');

?>
 

F

fishhunter

Guest

AW: erzeugteNavi - delete Button funktioniert nicht!

du musst den button in ein <form> tag stecken um ihn mit der javascript funktion submit abschicken zu können, desweiteren muss im form tag der parameter name eingetragen werden. bsp hier:
 

mathi77

Nicht mehr ganz neu hier

AW: erzeugteNavi - delete Button funktioniert nicht!

Hi,

danke für deine Antwort, haut mittlerweile hin :)

momentan steh ich aber beim nächsten Problem?
Eine neue Seite anlegen funktioniert schon!

Möchte aber mittels SQL Datenbank Abfrage ein Select-Feld erstellen, damit ich danach beim anlegen einer neuen Seite die FID übermitteln kann....damit ich weiß zu welchen Navipunkt die neue Seite gehört!

Leider bekomm ich keine Werte von der DB angezeigt :(
Hast du einen Tipp für mich?

danke & glg Mathi

PHP:
<?php
// ----------- NEUE SEITE ANLEGEN ------------------//
            
            echo('<form id="frmneueSeite" method="POST" action="">
                 <input type="hidden" name="welcheID" id="welcheID" />
                 
                  <label for="neueSeite">neue Seite anlegen:</label><br/>
                  <select name="navigation" size="1" id="navigation >');
                 
                  $sql = "SELECT * FROM tbl_website ORDER BY sortID ASC";
                  $result =  mysql_query($sql) or die("ERROR: ".mysql_error());
                     while($data = mysql_fetch_object($result)){
                        echo '<option value="'.$data['name'].'">'.$data['name'].'</option>';
                        }    
                echo($data);
                     
                 echo ('</select>
                 <input name ="neueSeite" id="neueSeite" type="text" value="" />
                 <input class="button" type="submit" name="neu" id="neu" value="neu"/>
                 </form>');
                 
?>

    // ------------- SEITE NEU ANLEGEN - ANFANG --------------    

    if (isset($_POST['neu'] ))
        {
        
    // Maskierende Slashes aus POST entfernen
        $_POST = get_magic_quotes_gpc() ? array_map( 'addslashes', $_POST ) : $_POST;
    
    // Inhalte der Felder aus POST holen
        $neueSeite = $_POST["neueSeite"];

    // Anfrage zusammenstellen der an die DB geschickt werden soll     '" .mysql_real_escape_string( $vorname ). "',
        $sql = "INSERT INTO tbl_website (name)
                       VALUES 
                           ('" .mysql_real_escape_string($neueSeite)."')
                           "; 
        
    // Schickt die Anfrage an die DB und schreibt die Daten in die Tabelle
        $query = mysql_query( $sql ) or die("ERROR: ".mysql_error());

    // Pruefen ob der neue Datensatz tatsaechlich eingefuegt wurde
        if (mysql_affected_rows() == 1)
            {
            $msg = "<p class='sucess'><img border='0' src='images/neu.gif'  alt='Einstellungen' />&nbsp;Die Seite wurde erfolgreich hinzugef&uuml;gt!</p>";                    
            }
        else
            {
            $msg = "<p class=\"error\">Die Seite konnte <strong>nicht</strong> hinzugef&uuml;gt werden!<br />
                    Bitte wenden Sie sich an Ihren Administrator!</p>";
            }
        }
 

netbandit

Aktives Mitglied

AW: erzeugteNavi - delete Button funktioniert nicht!

Hallo Mathi,

nochmal zum löschen, auch wenn es mitleirweile funktioniert; mach es Dir nicht alzu kompliziert, hier mal ein Beispiel wie es einfacher geht:

PHP:
<script language="javascript" type="text/javascript">
function loeschen(id)
    {
    cf = confirm('Wollen Sie diese Agentur wirklich loeschen?');
    if (cf == true) 
        {
        location.href = '?loeschen=1&id=' + id;
    }
}
</script>


<?PHP
error_reporting(E_ALL);
$loeschen=0;
$id=0;

if(isset($_GET['loeschen']) && $_GET['loeschen']==1){
    $loeschen=$_GET['loeschen'];
}

if(isset($_GET['id']) && $_GET['id']>=1){
    $id=$_GET['id'];
}

if($loeschen==1 && $id>=1){
    echo '<p>Datensatz Nr.' . $id . ' wird gel&ouml;scht</p>';
}

$ct=20;
for($i=1;$i<$ct;$i++){
    echo 'Nr.' . $i . ': <input type="button" value="X" onclick="loeschen('.$i.');"/><br/>';
}
?>

Das andere schau ich mir gleich mal an :)
 

mathi77

Nicht mehr ganz neu hier

AW: erzeugteNavi - delete Button funktioniert nicht!

Hi ;),

WOW der Lösungsansatz ist ja wirklich einfacher :)

Hoffe mein 2. Problem irgendwie verständlich erklärt zu haben... :rolleyes:
achja müsste dann der neuen Seite auch eine Reihenfolge zuordnen, damit ich bei der Navi-Ausgabe die Reihenfolge bestimmen kann...

:danke: für Deine Hilfe!

glg Mathi
 

netbandit

Aktives Mitglied

AW: erzeugteNavi - delete Button funktioniert nicht!

Also zuerst einmal

HTML:
<input type="hidden" name="welcheID" id="welcheID" />

wird gar nicht benötigt, kannst Du löschen.

Dann; Slashes entfernen macht man mit stripslashes()

Und zum Problem müsste man jetzt wissen wie Deine Tabelle(n) aufgebaut sind (welche Spalten), enthalten oder sind diese nur für die Navigation gedacht?

Grüße
 

mathi77

Nicht mehr ganz neu hier

AW: erzeugteNavi - delete Button funktioniert nicht!

danke, hab das hidden feld gelöscht und stripslashes () beim input feld benutzt!

Hier ein Screenshot von meiner tbl_website!


In dieser tbl sollte in zukunft auch der Text(mittels editor bearbeitbar sein), die Navi, Reihenfolge(sortID) und die Navi-Ebene (fid) gespeichert werden.

danke :)
 
Zuletzt bearbeitet:

netbandit

Aktives Mitglied

AW: erzeugteNavi - delete Button funktioniert nicht!

Hallo Mathi,

auf was bezieht sich fid, bzw. woher kommt dieser Wert? Kommt es aus einer anderen Tabelle?

btw. solltest Du Dir auch noch Gedanken darüber machen, wieviele Zeichen die Felder max. enthalten könnten.

Kann mir vorstellen, dass für name und link varchar(255) und u.U. bei den Feldern mit Zahlen auch teilweise TINYINT vollkommen ausreichend sind.

Grüße
 

mathi77

Nicht mehr ganz neu hier

AW: erzeugteNavi - delete Button funktioniert nicht!

hallo :)

also zu fid war meine Überlegung folgende:

alle Links die in der Hauptnavi erscheinen sollen vergeb ich bei fid eine 0
links darunter erhalten bei fid die id_website als übergeordnete Ebene

somit erzeuge ich eine Navi rekursiv wie folgt und fange mit erzeugeNavi(0) an.... das funktioniert ja gottseidank schon!

ich möchte einfach ein kleines cms machen wo ich die seite löschen, bearbeiten, neu anlegen kann (und eben zuweisen in welcher Ebene die Seite angelegt werden soll -> fid)!

bin ich da am richtigen weg? :(

danke & glg Mathi
p.s. die einstellungen der einzelnen db-felder schau ich mir gleich an...(war da nu a bissl faul)

PHP:
        // ----------- ANZEIGE NAVIGATION ------------------//
    
        echo('<form id="frmNavi" method="POST" action="">
                 <input type="hidden" name="welcheID" id="welcheID" />
                 <input type="hidden" name="welcheSeite" id="welcheSeite" />
                 ');
        
        function erzeugeNavi($fid){
        $sql = "SELECT * FROM tbl_website WHERE(fid = ".$fid.") ORDER BY sortID ASC";
        $result =  mysql_query($sql) or die("ERROR: ".mysql_error());
        $text = "";    

        if(mysql_num_rows($result)>0){
            $text=$text.'<ul>';
            while($data = mysql_fetch_object($result)){
                $text.= '

                <li><a href="'.$data->link.'">'.$data->name.'</a><input class="button" type="submit" name="loeschen" id="loeschen" value="loeschen" onclick="Linkloeschen('.$data->id_website.');"/>
                <input class="button" type="submit" name="bearbeiten" id="bearbeiten" value="bearbeiten" onclick="Linkbearbeiten('.$data->id_website.');"/>
                ';
                
                //--------- REKURSION! ---------------
                $text.=erzeugeNavi($data->id_website);
                // -----------------------------------
                
                $text.='</li>';
                        }
            $text.='</ul>';
                    }
        return($text);
        }
    echo (erzeugeNavi(0));    
    echo('</form>');

        // ----------- NEUE SEITE ANLEGEN - ANFANG ------------------//
            
            echo('<form id="frmneueSeite" method="POST" action="">
                 
                  <label for="neueSeite">neue Seite anlegen:</label><br/>
                  <select name="navigation" size="1" id="navigation >');
                 
                  $sql = "SELECT * FROM tbl_website ORDER BY sortID ASC";
                  $result =  mysql_query($sql) or die("ERROR: ".mysql_error());
                     while($data = mysql_fetch_object($result)){
                        echo '<option value="'.$data['name'].'">'.$data['name'].'</option>';
                        }                         
                 echo ('</select>
                 <input name ="neueSeite" id="neueSeite" type="text" value="'.$_POST['neueSeite'].'" />
                 <input class="button" type="submit" name="neu" id="neu" value="neu"/>
                 </form>');
        // ----------- NEUE SEITE ANLEGEN - ENDE ------------------//
 

netbandit

Aktives Mitglied

AW: erzeugteNavi - delete Button funktioniert nicht!

Halte ich für sehr unflexibel, na trotzdem;
Also solltest Du als erstes auch die entsprechenden IDs und die Möglichkeit die Seite als Hauptpunkt auszuwählen in Dein Formular mit einbeziehen und zu guter Letzt anstelle von mysql_fetch_object z.B. mysql_fetch_array() verwenden (immer im Quelltext vom Browser schauen wenn etwas nicht ausgegeben/angezeigt wird) ;)

// ----------- NEUE SEITE ANLEGEN ------------------//

echo('<form id="frmneueSeite" method="POST" action="">
<label for="neueSeite">neue Seite anlegen:</label><br/>
<select name="navigation" size="1" id="navigation" >
<option value="0">Hauptpunkt</option>');

$sql = "SELECT id_website, name FROM tbl_website ORDER BY sortID ASC";
$result = mysql_query($sql) or die("ERROR: ".mysql_error());
while($data = mysql_fetch_array($result)){
echo '<option value="'.$data['id_website'].'">'.$data['name'].'</option>';
}
echo ('</select>
<input name ="neueSeite" id="neueSeite" type="text" value="" />
<input class="button" type="submit" name="neu" id="neu" value="neu"/>
</form>');


// ------------- SEITE NEU ANLEGEN - ANFANG --------------
Und dann schaun mer mal...

Grüße :)
 
Zuletzt bearbeitet:

mathi77

Nicht mehr ganz neu hier

AW: erzeugteNavi - delete Button funktioniert nicht!

hm, was ist denn unflexibel? meinst du das ich nur mit einer tabelle arbeite?
wie hättest du das gelöst?

ok, das mit dem Select funktioniert, er zeigt mir alle Navi-Links aus!
jedoch wird jetzt jede neue Seite in die Hauptnavi 0 gespeichert... wie kann ich nun Seiten auch in die Unternavi zuweisen?

wie übergeb ich das richtig der SQL INSERT Anweisung?

Danke Dir! glg Mathi
 

netbandit

Aktives Mitglied

AW: erzeugteNavi - delete Button funktioniert nicht!

Ja, hätte mit 3 Tabellen gearbeitet, eine für CONTENT, eine für NAV und eine "Hilfstabelle" die die beiden "vernüpft"

Zum Einfügen, einfach folgendermaßen erweitern ($navigation natürlich vorher entsprechend definieren)

$sql = "INSERT INTO tbl_website (name, fid)
VALUES
('" .mysql_real_escape_string($neueSeite)."', '" .mysql_real_escape_string($navigation)."')
";
Grüße
 

mathi77

Nicht mehr ganz neu hier

AW: erzeugteNavi - delete Button funktioniert nicht!

danke, funzt, kann nun endlich unterseiten richtig erstellen :)

wie bau ich jetzt am besten die Reihenfolge ein, damit ich das auch selbst bestimmen kann?

zurzeit sieht meine ausgabe so aus (noch ohne css-feinschliff!)



:danke:
 

netbandit

Aktives Mitglied

AW: erzeugteNavi - delete Button funktioniert nicht!

hmmm, also ich würde das jetzt mit bei "bearbeiten" unterbringen, also extra Seite wo Du Content, Name und Position angeben kannst.

Was besseres fällt mir da auch nicht ein :uhm:
 

saila

Moderatorle

AW: erzeugteNavi - delete Button funktioniert nicht!

danke, funzt, kann nun endlich unterseiten richtig erstellen :)

wie bau ich jetzt am besten die Reihenfolge ein, damit ich das auch selbst bestimmen kann?

:danke:

In dem du zum einen der Navigations-Tabelle eine sort-Feld vergibst und das gleiche für den Content. Danach kannst du letztlich die Seite nach der lfd.-Nr. ausgeben (oder weiterverlinken - sofern mehr voranden) oder du kannst eine Blätterfunktion einbinden.

Das ganze kann im Backend per JS gesteuer werden und zwar auf der Übersichtsseite. Wenn du jQuery einsetzt, geht das auch mit Dragable. Um einmal die Spitze des machbaren zu nennen. Nach jedem event wird per Ajax dann die Reihenfolge gespeichert. Und auch die gleiche Vorgehensweise kannst du wieder für die Content-Seiten verwenden.

Ich weis zwar nicht (weil nicht gelesen) wie du nun die Navigation im Frontend ausgeben willst? Empfehlenswert ist eine Recursion für die Navigation. Sprich eine Funktion, welche sich solange aufruft, bis keine Daten mehr vorhanden sind.
 

mathi77

Nicht mehr ganz neu hier

AW: erzeugteNavi - delete Button funktioniert nicht!

@netbandit: danke Dir! bist immer so schnell beim antworten :D

@saila: danke für Deine Antwort!
werds mit einem sort-Feld probiern und dann mittels JS weiterverarbeiten!
im fronted werd ich die Navi natürlich mit rekursiver Funktion ausgeben!

Danke & lg Mathi
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben