Beiträge von cottton

    Ich denke was Du suchst ist: http://php.net/manual/de/features.file-upload.multiple.php


    Beachte: userfile[]
    Ich glaube multiple="multiple" ist in der Doku auf php,net bissl untergegangen

    Müsste das Plugin nicht "AddOnClickAttrSetCallback" heißen? :D
    Ich weiß - ist nur ein Bsp

    Würde noch beim callback verdeutlichen, dass dort weiterführender code angegeben werden kann/sollte -- wenn denn überhaupt ein callback gebraucht wird.

    JavaScript
    /**
           * function callback got called after the attribute was set
           * @param object element clicked DOM element
           * @param object settings current settings
           */
          callback: function(element, settings){
              // ... <-- hier
          }


    (muss mir jquery angucken :S )

    Ja, Mist :pinch:
    Hab auch noch zum ~ selector gesucht.
    Aber bei dem siehts wohl genauso aus.
    Schade.
    (andere input-Elemente fallen ja auch raus.)
    Immerhin -- auch mit id ne schöne Sache. (Danke nochmal =)

    Hab keine Ahnung, wie was ich als Überschrift hätte nehmen sollen :D

    Angelehnt an Erweiterung von Toggle Menü ohne JavaScript für mobile Navigation
    Ich möchte über :checked andere Kontainer beeinflussen.

    Wenn :checked, dann soll das auf ein label folgende obj (hier div) beeinflusst werden.

    wolf hatte mir schon gezeigt, dass es mit nem input und id funktioniert.
    Jetzt versuche ich das Ganze ohne id.


    Mit id funktioniert - klar. Aber ohne wäre es schön einfach dynamisch zu erstellen (PHP-seitig zB)

    Das ist was ich hab:

    CSS
    label + div, label > div { /*innere und aeussere default yellow*/
        background-color: yellow;
    }
    label > input:checked + div{ /*innere red, wenn :checked*/
        background-color: red;
    }
    label + div input:checked + div{ /*aeussere red, wenn :checked -- funktioniert so nicht =/ */
        background-color: red;
    }
    HTML
    <label>
        click
        <input type="checkbox">
        <div>change inside</div>
    </label>
    <div>change outisde</div>


    und live test: https://jsfiddle.net/61b65czk/2/

    Ich bin mir sicher, dass label + div input:checked + div falsch ist :D
    Was ich als Anweisung brauche ist wohl in etwa:
    wenn ein label > input:checked
    dann dieses label + div { ... }
    Bekommt man das hin, oder gibts da doch Grenzen?

    Mir hat die Nav von hier https://www.html-seminar.de/toggle-menue-ohne-javascript.htm gefallen
    und hab mich (gezwungen weil ja nicht so mit css befreundet) da mal rangesetzt,
    um das Menü auch mit Untermenüs zum laufen zu bekommen.

    Demo: http://www.cottton.net/
    oder https://jsfiddle.net/pschqazd/ (wobei dort die "result"-watermark über dem Menu-Button nervt :) )

    Da sich ja nun aber die Untermenüs per :hover öffnen, wird das aufm Mobile nicht so gut kommen.
    Wie/Wo könnte man denn hier ansetzen, um (auch wieder ohne JS) die Untermenüs per Button zu öffnen?

    Ideen/Vorschläge/Änderungen/... immer gern.

    Code:
    index.html


    header.css


    style.css

    Ja, da fehlt mindestens ein Semikolon:


    Im Ausschnitt Zeile 3 -- das fehlende Semikolon.
    Und evtl bauen sich alle anderen Fehler darauf auf.

    Kannst Du prüfen: Seite öffnen, Rechtsklick -> Element untersuchen (ich empfehle chrome), console
    dort siehst Du dann, ob und welche Fehler auftreten. (inklusive klickbaren Link zur Datei/Zeile)

    Schusselfehler:
    personalnumer und personalnummer :P

    Hab gerade mal drüber geguckt - den parse error hab ich hier nicht feststellen können.
    Aber hab da was verdreht :D
    Erst query string zusammen stellen, dann ->prepare :whistling:


    Aber -- zu meiner Verteidigung -- Du musst ja auch Fehler finden/deuten können :P

    Wie Du das machst ist relativ egal, solange es funktioniert und überschaubar ist.
    Es passiert nicht selten, dass man fertige Funktionen erweitern will und die dann aber neu schreibt, weil die verwendete Art und Weise nicht mehr passt.

    Mein Aufruf dann so: $kategorien = kategorien($mysqli, $offset, $limit=false, $amount);


    Wenn Du die Funktion so definierst, dass zB der Parameter $limit eine Default-Value hat (also $limit=false),
    dann musst Du diesen Parameter beim Aufruf auch nicht angeben.

    PHP
    $kategorien = kategorien($mysqli);

    Thema Query: gibt wieder verschiedene Wege.
    Ich mach das meistens so:


    So siehst Du sofort, dass

    PHP
    if($limit !== false) ... // wenn also limit reingeschickt wurde (nicht default FALSE ist), dann "mach was damit


    usw.

    EDIT: ist das mit der PageNav zu viel? Frage dehalb, weil es ja verständlich sein soll. Wenn nicht, muss ichs mal ändern.

    Eigtl nicht. Wenn doch, dann hab och dort was falsch erklärt, oder falsch ge-script-ed :D
    guck mal hier:

    PHP
    /* **** **** **** create a new PageNav **** **** **** */
    $page_offset_current = isset($_GET['page']) ? $_GET['page'] : 1;
    $lines_count_all = 1001; // here you would use a db query like "SELECT COUNT(*) FROM tbl WHERE ..."
    $lines_per_page = 25; // how many lines per page are viewed
    $n = 5; // how many choices to each direction (left/right) (Nx[link/button] [page_offset_current] Nx[link/button])
    $PageNav = new PageNav($page_offset_current, $lines_count_all, $lines_per_page, $n);
    /* **** **** **** **** **** **** **** **** **** **** */


    Das würde in etwa für Dich bedeuten:

    PHP
    /* **** **** **** create a new PageNav **** **** **** */
    $page_offset_current = isset($_GET['page']) ? $_GET['page'] : 1; // <------- hier deinen GET-key ( $_GET['seite'] oder was du halt nutzt )
    $lines_count_all = getAmountKdCategory($mysqli, 'my_tbl_to_count'); // die maximale anzahl angeben
    $lines_per_page = 25; // wieviele datensätze per seite (zeilen in der liste...)
    $n = 5; // 5 wäre [1][2][3][4][5][-mitte 6-][7][8][9][10][11]
    $PageNav = new PageNav($page_offset_current, $lines_count_all, $lines_per_page, $n); // und nu einfach das ding "starten" -- dabei berechtet die klasse alle möglichen ... naja, den kram halt :D
    /* **** **** **** **** **** **** **** **** **** **** */


    Das HTML-Gerüst muss ich Dir ja hoffentlich nicht erklären :D
    (cottton out ... pennen :D)

    Unzureichende Information.
    Was Du uns hier an Code zeigst, ist nur ein Teil.

    Das Problem mit dem Namen wird durch ein JS "verursacht". Dieses JS holt sich sicherlich per Data-Attribut data-validator den Namen und prüft ihn.
    Der Text "Thank you for your comment!" kommt aus irgend einer Zeile, die ich hier nicht sehen kann =)

    Immer so, wie es "am meisten Sinn macht" -- für Dich.
    Wenn Du auf verschiedenen Tabellen ein COUT brauchst, dann kann das Sinn machen.
    Dann musst Du aber zur Sicherheit prüfen, ob der String für den tbl-name auch in Ordnung ist (injection ...).

    EDIT: wenns and WHERE geht, dann kann es sein, dass es Sinnvoller ist mehrere Funktionen zu nutzen.
    Denn wenn Du in einer Funktion die WHEREs für (übertrieben) 10 verschiedene Queries zusammenbastelst, kann es sein, dass Du später nicht mehr durch siehst.
    Hier im Fall allerdings kein Problem.

    Stimmt, hab ich gar nicht bemerkt :)
    Viele Funktionen sind nicht falsch.
    Vieles wird mehrfach gebraucht. Dann macht es Sinn diese Sachen auszulagern.
    Selbst bei $pages kann das Sinn machen, wenn Du die Berechnung dahinter an anderer Stelle nochmal benötigst.

    Du würdest also eine Funktion (Bsp-name) getPages() aufrufen -- un in dem Moment interessiert Dich nicht, was da drin passiert. Du willst nur das Ergebnis.
    Ohne Funktion würdest Du den Code kopieren - an die Stelle, an der Du sie brauchst.
    Und das kann gefährlich werden, wenn die Berechnung mal geändert wird.
    Es könnte passieren, dass Du den Code dann nur an einer Stelle änderst, an der anderen Stelle aber belässt.

    Aber ich will jetzt hier kein Buch schreiben :D

    EDIT zu Deinem EDIT :D

    PHP
    define ('LIMIT', 15); 
    $limit = 'LIMIT';


    Fehler.
    define() definiert eine Konstante LIMIT.
    Den Inhalt der Konstante bekommst Du dann einfach per

    PHP
    $limit = LIMIT;
    // oder constant('LIMIT'), aber das ist im normalfall nicht nötig, es sei denn
    // du hast den namen der const in einer var -- bsp:
    $const_name = 'LIMIT'; // ist string, klar
    $wert = constant($const_name); // siehe http://php.net/manual/de/function.constant.php


    Was Du gemacht hast: $limit den String "LIMIT" zugewiesen.

    ok, verstehe jetzt.
    Dein Problem: Du definierst die var $amount IN der funktion kundengruppen_test.
    Diese brauchst du außerhalb.
    Dafür gibts mehrere lösungen.
    A)
    du gibst mehr also nur einen Wert aus der Funktion raus: ,

    PHP
    return array(0=>$amount, 1=>$kundengruppen_test)


    was ich allerdings hier NICHT empfehle.
    B)
    Du gibts übernimmst einen Parameter $amount per Referenz:

    PHP
    function kundengruppen_test($mysqli, $limit, &$amount){
        //...
        $amount = 1; // wäre bei dir $res->bind_result($amount);
    }
    $amount = null; // vordefinieren der var
    $... = kundengruppen_test($mysqli, LIMIT, $amount);


    $amount wurde von der Funktion als Referenz übernommen und innerhalb geändert.
    (siehe http://php.net/manual/de/language.references.php)
    C)
    (empfohlen)

    Du nutzt mehr als nur eine Funktion:


    und jetzt der Ablauf:

    PHP
    // du bist "ausserhalb" und irgendwo hattest du LIMIT (Konstante) und $mysqli schon definiert
    $amount = getAmountKdCategory($mysqli);  
    $offset = getOffset(LIMIT);  
    $kundengruppen = kundengruppen_test($mysqli, $offset, LIMIT, $amount);

    EDIT: Funktion getOffset() geändert -- default return Wert