Antworten auf deine Fragen:
Neues Thema erstellen

input-Anzahl wird generiert, input-Name soll fortlaufend sein (name_$i)

martinhahn90

Nicht mehr ganz neu hier

Servus Jungs,

ich bin gerade dabei, eine kleine Galerieverwaltung weiterzuschreiben. Und zwar sitze ich daran, dass man die angelegten Bilderkategorien, sowie die angelegten Bilder sortieren kann.
Bei den Kategorien ging das recht einfach, selbst ohne große PHP-Kenne.

Auch beim Bilder-Upload war es einfach, die PositionsID zu vergeben und diese in die Datenbank eintragen und später auslesen zu lassen.
Funktioniert wunderbar, hatte ich keine Probleme mit (bin ich auch stolz drauf, wie Oskar, so als völliger N00b^^).

Das Prinzip beim Bilder-Upload war einfach:
Da hier ein statisches Formular existiert, welches jeweils nur fünf Bilderuploads gleichzeitig erlaubt, kann für jedes input-Feld ein eigener Name von Hand eingegeben werden, nach dem Prinzip: name='image_1', name="'image_2' und so weiter.
Das ganze konnte ich dann in der Prozess-Datei wunderbar abholen und in die Datenbankschreiben lassen via folgender Zeile:
SET name = \''.varchar($_POST['name_'.$i]).'\'


Nun möchte ich die Positionierung auch bei der Bilderbearbeitung noch als Feature hinzufügen. Hier habe ich aber das Problem, dass es sich eben nicht um ein statisches Formular mit immer jeweils fünf Feldern handelt, sondern hier werden so viele inputs angezeigt, wie ich Bilder in die Kategorie geladen habe. Also zwischen 0 und unendlich.
Hier weiß ich nun nicht, wie ich sagen kann, dass der Name des input-feldes sich immer erhöht, sodass ich es dann nach dem gleichen Prinzip wie oben auslesen und in die Datenbank schreiben kann.


Ich hoffe, das ist halbwegs verständlich dargestellt...:rolleyes:

Grüße und danke vorab,

Martin
 

martinhahn90

Nicht mehr ganz neu hier

AW: input-Anzahl wird generiert, input-Name soll fortlaufend sein (name_$i)

Dachte gerade, ich hätte einen tollen Ansatz, aber der geht auch nicht...vielleicht wird dadurch aber noch einmal deutlicher, was ich will. Fürchte nämlich, ich drücke mich etwas schwerverständlich aus, eben weil es für mich schwerverständlich ist. :D

admin/index.php
Code:
<fieldset><legend>Bilder bearbeiten, Kategorie: <?=$row->name;?></legend>
                    <?php
                    $query = $sql->sendQuery('SELECT id, posID, name
                        FROM fdw_images
                        WHERE catID = \''.intval($_GET['id']).'\'
                        ORDER BY posID');
                    while($row = $sql->fetchObject($query)) {
                        echo '<div style=\'margin:3px;\'>';
                            echo '<img style=\'vertical-align:middle;\' src=\'../thumbs/'.$_GET['id'].'/'.$row->name.'\' alt=\'\' title=\''.$row->name.'\' />';
                            echo 'Pos: <input type=\'text\' name=\'posID_'.$i++.'\' value=\''.$row->posID.'\' style=\'width: 30px;\' />';
                            echo '<a href=\'index.php?site=deleteImage&amp;id='.$row->id.'\'>entfernen</a>';
                            echo '<br /><form action=\'send.php\' method=\'POST\' enctype=\'multipart/form-data\'><input type=\'submit\' name=\'editImage\' value=\'Absenden\' />';
                        echo '</div>';
                    }
                    ?>
                </fieldset>


admin/send.php
Code:
elseif($_POST['editCats']) {
    
    for($i = 0; $i < $_POST['entrys']; $i++) {
        $query = $sql->sendQuery('UPDATE fdw_image_cats
            SET name = \''.varchar($_POST['name_'.$i]).'\',
                posID = \''.intval($_POST['posID_'.$i]).'\',
                titleTag = \''.varchar($_POST['titleTag_'.$i]).'\'
            WHERE id = \''.intval($_POST['id_'.$i]).'\'');
    }
    
    header('Location:index.php?site=category');
}
 

exo

Aktives Mitglied

AW: input-Anzahl wird generiert, input-Name soll fortlaufend sein (name_$i)

du schonmal dran gedacht es mit einer foreach-schleife zu versuchen? die läuft ja bekannterweise nur solang - wie etwas existiert - also bei 5 bildern - läuft se 5x und bei 8 - 8x usw. usw. vielleicht hilft dir das ein wenig weiter
 

martinhahn90

Nicht mehr ganz neu hier

AW: input-Anzahl wird generiert, input-Name soll fortlaufend sein (name_$i)

hmmm...das Teil zeigt mir aber ja auch nur so viele Einträge an, wie ich haben will.
Das Problem ist nur: Trage ich in die inputfelder etwas ein und sende es ab, passiert nichts. Die Übertragung in die Datenbank klappt nicht. Auslesen geht wunderbar, schreiben nicht. Und das auch nur bei der Bilderbearbeitung, bei den Kategorien klappt es wunderbar, ebenso beim Neueinstellen von Bildern.

Und den einzigen Unterschied, den ich zwischen Bearbeitung und Neueinstellung sehe ist, dass beim einen der input-Name fix ist, beim anderen nicht. Und den muss ich nun so hinbekommen, dass die Zahl hinter posID_ einfach höhergezählt wird.

Daher dachte ich eben an name=\'posID_'.$i++.'\' - was dann so in die DB geschrieben wird: posID = \''.intval($_POST['posID_'.$i]).'\',
 

Christian

verpeilt & verschallert

AW: input-Anzahl wird generiert, input-Name soll fortlaufend sein (name_$i)

Ein kurzes Beispiel um Dein Vorhaben zu verdeutlichen:
Inputzahl generieren:
PHP:
<?

foreach( $result as $data )
{
	print '<input type="text" name="link['.$data['id'].']"/>';
}

?>

Nach dem Absenden:
PHP:
print_r($_POST['link']);
Kurze Erläuterung:
Wenn man den Formularfeldern im name-Attribut ein [ ] hintersetzt erzeugt man damit im Übertragenen Sinne ein Array, was man sich dann über print_r($_POST['name']) ausgeben kann.

So funktioniert beispielsweise auch die Übergabe der Daten in phpMyAdmin
 
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.614
Beiträge
1.538.351
Mitglieder
67.525
Neuestes Mitglied
mgtaucher
Oben