Input "Text" gegen Select tauschen Input "Text" gegen Select tauschen
 

News:

CPG Release 1.6.26
Correct PHP8.2 issues with user and language managers.
Additional fixes for PHP 8.2
Correct PHP8 error with SMF 2.0 bridge.
Correct IPTC supplimental category parsing.
Download and info HERE

Main Menu

Input "Text" gegen Select tauschen

Started by Domiki86, June 02, 2016, 08:31:19 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Domiki86

Moin zusammen,

nachdem ich so tolle Hilfe bei den Benutzerdefinierte Felder bekommen habe brauche ich wieder mal bisschen Hilfe.

Ich würde gerne "user2" und "user5" eine Auswahlliste (select) anstatt Input (text) Felder haben.
Ist dies möglich oder ist das zuviel aufwand? Ich kann die Felder zumindest in der edit_one_pic.php austauschen aber es scheitert an der Weitergabe der Inhalte.
Welche Daten müssen noch alle bearbeitet werden damit die dann auch gleich in der upload.php zu Vorschein kommen?

Ich hoffe mir kann wieder mal jemand helfen.

Vielen Dank

Dominik

Αndré

Quote from: Domiki86 on June 02, 2016, 08:31:19 PM
Ich kann die Felder zumindest in der edit_one_pic.php austauschen aber es scheitert an der Weitergabe der Inhalte.

Hat das Feld denn den richtigen Namen? Beispiel:
Quote from: Αndré on July 27, 2011, 10:02:57 AM
Open edit_one_pic.php, find
if ($CONFIG['user_field1_name'] != '') {

    echo <<< EOT

    <tr>
        <td class="tableb" style="white-space: nowrap;">
            {$CONFIG['user_field1_name']}
        </td>
        <td width="100%" class="tableb" valign="top">
            <input type="text" style="width: 100%" name="user1" maxlength="255" value="{$CURRENT_PIC['user1']}" class="textinput" />
        </td>
    </tr>
EOT;
}

and replace with
if ($CONFIG['user_field1_name'] != '') {

    $options_array = array('', 'TABOR ELEKTRYCZNY', 'TABOR SPALINOWY', 'TABOR PAROWY');
    foreach ($options_array as $option) {
        $selected = $CURRENT_PIC['user1'] == $option ? ' selected' : '';
        $options .= "<option{$selected}>{$option}</option>";
    }

    echo <<< EOT

    <tr>
        <td class="tableb" style="white-space: nowrap;">
            {$CONFIG['user_field1_name']}
        </td>
        <td width="100%" class="tableb" valign="top">
            <select name="user1" maxlength="255" class="listbox">{$options}</select>
        </td>
    </tr>
EOT;
}


Domiki86

Moin Αndré,

vielen Dank für deine Hilfe.

Ich hatte einen ganz anderen Ansatz als du. Ich wollte den Type text komplett gegen Select tauschen und da lag wohl der Fehler.

Jetzt muss ich nur noch wissen wo ich das in der upload.php ändern muss. Ich habe die letzten Tage immer wieder gesucht aber ich finde die Input Felder nicht. Sind die überhaupt im der upload.php oder werden die in einer anderen Datei erzeugt?

Vielen Dank für deinen tollen Support.

Gruß

Αndré

Reden wir hier von den Feldern beim Einzelupload, oder vom Formular, welches nach dem Hochladen mit dem Flash-Uploader erscheint (editpics.php)?

Domiki86

Wir reden von den Feldern im Einzelupload.


Αndré

Ich hab es mir gerade mal angesehen und bin mir sicher, dass es dafür im Forum bereits Lösungen geben sollte, finde diese aber gerade nicht.

Das Formular wird in der Datei upload.php über die Funktion "create_form_simple" erstellt. Da es bisher keine Funktion gibt um Auswahllisten zu erstellen, müssen wir das noch vorbereiten. Als Vorlage kann uns dabei die Funktion "form_alb_list_box" dienen. Innerhalb der Funktion "create_form_simple" müssen wir dann einen "case 5" und "case 6" einfügen, der entsprechend jeweils deine Auswahllisten erstellt. Ein paar Zeilen über dem Funktionsausruf muss dann entsprechend die Nummer für den "case" angepasst werden:
$form_array[] = array($CONFIG['user_field2_name'], 'user2', 0, 255, 1);
$form_array[] = array($CONFIG['user_field5_name'], 'user5', 0, 255, 1);

Was soll denn in die Auswahllisten jeweils rein?

Domiki86

In den Bezeichnung Feld 2 sollen Ländernamen rein und in Bezeichnung Feld 5 Schiffstypen also z.b Stückgutfrachter.



Αndré

Alles klar. Ich habe heute vermutlich keine Zeit mehr den Code zu erstellen. Evtl. schaffe ich es am Donnerstag oder Freitag.

Domiki86

Vielen Dank.

Mach dir keinen Stress ich habe Zeit :)


Αndré

Finde
// If the type is not present, kill the script.
und füge darüber folgendes ein:
                case 5 :
                    foreach ($element[3] as $option) {
                        $options .= "<option>{$option}</option>";
                    }

                    echo <<< EOT

                    <tr>
                        <td class="tableb" style="white-space: nowrap;">
                            {$element[0]}
                        </td>
                        <td width="100%" class="tableb" valign="top">
                            <select name="{$element[1]}" maxlength="255" class="listbox">{$options}</select>
                        </td>
                    </tr>
EOT;
                    break;


Um nun Feld 2 entsprechend zu ändern, suchst du
$form_array[] = array($CONFIG['user_field2_name'], 'user2', 0, 255, 1);
und änderst es in
$form_array[] = array($CONFIG['user_field2_name'], 'user2', 5, array('', 'TABOR ELEKTRYCZNY', 'TABOR SPALINOWY', 'TABOR PAROWY'));

Dasselbe dann noch für Feld 5.