ch habe wieder so eine Dynamische Tabelle, wo aber leider nur immer der letzte Eintrag in die Datenb


CreativPur

Erfahrenes Mitglied
#1
PHP:
if($save =='arbeitsgebiete') {
    $error = false;
    for ($i = 0; $i < count($_POST['arbeitsorte_plz']); $i++) {
    $arbeitsorte_plz = $_POST['arbeitsorte_plz'][$i];
    $arbeitsorte_ort = $_POST['arbeitsorte_ort'][$i];
    $statement = $pdo->prepare("UPDATE sitters SET arbeitsorte_plz = :arbeitsorte_plz, arbeitsorte_ort = :arbeitsorte_ort WHERE id = :userid");
    $result = $statement->execute(array('arbeitsorte_plz' => $arbeitsorte_plz, 'arbeitsorte_ort' => $arbeitsorte_ort, 'userid' => $user['id'] ));
    }
}
PHP:
<h3 class="green">Weitere Arbeitsorte</h3>
            <hr />
            <form action="?save=arbeitsgebiete" method="post" class="form-horizontal">
                <table>
                    <thead>
                        <tr>
                        <th><label>Plz</label></th>
                        <th></th>
                        <th><label>Ort</label></th>
                        <th></th>
                        <th></th>
                        </tr>
                    </thead>
                    <tbody>
                        <tr>
                            <td width="80" data-name="arbeitsorte_plz"><input class="form-control" name="arbeitsorte_plz[]" type="text" /></td>
                            <td width="5"></td>
                            <td width="300" data-name="arbeitsorte_ort"><input class="form-control" name="arbeitsorte_ort[]" type="text" /></td>
                            <td width="5"></td>
                            <td width="10">
                                <button class="btn btn-success btn-add btn-sm" type="button"><i class="glyphicon glyphicon-plus gs"></i>
                                </button>
                            </td>
                            </tr>
                    </tbody>
                </table>
                <hr />
                <button type="submit" class="btn btn-primary">Änderung speichern</button>
            </form>
Code:
<script>
       $(function()
{
    $(document).on('click', '.btn-add', function(e)
    {
        e.preventDefault();
        var controlForm = $(this).closest('table'),
            currentEntry = $(this).parents('tr:first'),
            newEntry = $(currentEntry.clone()).appendTo(controlForm);
        newEntry.find('input').val('');
        controlForm.find('tr:not(:last) .btn-add')
            .removeClass('btn-add').addClass('btn-remove')
            .removeClass('btn-success').addClass('btn-danger')
            .html('<span class="glyphicon glyphicon-minus gs"></span>');
    }).on('click', '.btn-remove', function(e)
    {
        $(this).parents('tr:first').remove();
        e.preventDefault();
        return false;
    });
});
</script>
Wo verdammt liegt jetzt wieder der Fehler ????
 

Kalito

Erfahrenes Mitglied
#2
Was sit den das Problem? Die Überschrift gibt es nich ganz klar her.

Was soll rauskommen/passieren, wie ist der IST-Zustand und woran hängt es gerade bei dir?
 

CreativPur

Erfahrenes Mitglied
#3
Hi Kalito,

Sorry.. Mit der Überschrift war ich wohl heute Morgen nach einer langen Nacht der Fehlersuche noch nicht ganz wach..

Also.. Ich habe eine Dynamik - Tabelle, wo ich PLZ und Ort eingeben möchte. Und zwar so viel wie ich möchte..
Das funktioniert auch soweit. Über einen Plus-Button kann ich ein weiteres Eingabefeld ausfüllen..

Die Datenbankübertragung funktioniert auch. Leider wird aber nur immer der letzte Datensatz der Tabelle angenommen, bzw. auch nur ausgegeben..

siehe Bilder..
1 = Formular
2 = Ausgabe
3 = Datenbankeintrag
 

Anhänge

CreativPur

Erfahrenes Mitglied
#6
hi,
Es sind schon Einträge wie persönliche Daten in der Datenbank vorhanden. Daher nur update. Die PLZ bleibt auch leer, bzw. wird nur der letzte Eintrag angenommen. Bildschirmfoto 2018-02-23 um 06.52.01.png
 

Sempervivum

Erfahrenes Mitglied
#11
Dann musst Du wahrscheinlich noch unterscheiden, ob ein Arbeitsort schon vorhanden ist, oder neu angelegt werden soll. Und: Ist er schon vorhanden, am Anfang die Daten lesen und in die Tabelle eintragen.
 

Kalito

Erfahrenes Mitglied
#12
Ich hab mal in meinem Fundus gekramt, da mir das Problem bekannt vorkam.

Die Tabelle würe ich so anpassen, dass du je Zeile einen counter hast

HTML:
<tr data-count =1><td><input class="form-control" name="arbeitsorte_ort[0]" type="text" /></td></tr>
Das Javascript habe ich dann wie folgt aufgebaut

Code:
tmp_id = parseInt($('#table_id > tbody > tr:last').data('count'))+parseInt(1);
Dann musst du am Ende nur noch den Namen des element anpassen
 

CreativPur

Erfahrenes Mitglied
#13
Ich habe es jetzt folgend versuch zu lösen..

PHP:
$plz = $user['plz'];
$Sitter_id = $user['Sitter_id'];

$sql = "SELECT
  img_pass,
  vorname,
  alter_sitter,
  nationalitaet,
  art,
  plz,
  ort,
  radius,
  arbeitsorte_plz,
  arbeitsorte_ort
  FROM
  sitters
  LEFT JOIN sitter_arbeitsorte
  ON Sitter_id = $Sitter_id
  WHERE
  plz = $plz
";


PHP:
<table class="table table-hover" id="task-table">
                <thead>
                    <td>&nbsp;</td>
                    <td>Name</td>
                    <td>Alter</td>
                    <td>Nationalität</td>
                    <td>Art Sitten</td>
                    <td>Arbeitsgebiet</td>
                    <td>Radius</td>
                    <td>Weitere Arbeitsgebiete</td>
                    <td align="center">Profil</td>
                </thead>
                        <tbody>
                        <?php foreach ($pdo->query($sql) as $row) { ?>
                            <tr>
                                <td><img src="../service/sitter/upload/<?php echo $row['img_pass'] ?>" class="img-responsive pass" width="50" /></td>
                                <td><?php echo $row['vorname'] ?></td>
                                <td><?php echo $row['alter_sitter'] ?></td>
                                <td><?php echo $row['nationalitaet'] ?></td>
                                <td><?php echo $row['art']; ?></td>
                                <td><?php echo $row['plz'] ?> <?php echo $row['ort'] ?></td>
                                <td><?php echo $row['radius'] ?> km</td>
                                <td ><?php echo $row['arbeitsorte_plz'] ?> <?php echo $row['arbeitsorte_ort'] ?></td>
                                <td align="center"><button type="button" class="btn btn-primary" style="background:#fff; border-color:#fff;" data-toggle="modal" data-target="#profil<?php echo $row['Sitter_id'];?>"><span class="glyphicon glyphicon-eye-open green" style="font-size:16px;"></span></button></td>
                            </tr>
                            <?php } ?>
                        </tbody>
                    </table>

Jetzt wird leider nichts mehr ausgegeben ..
Warum ?
 

CreativPur

Erfahrenes Mitglied
#16
PHP:
$plz = $user['plz'];
$sql = "SELECT * FROM sitters WHERE plz = $plz ";
PHP:
<table class="table table-hover" id="task-table">
                <thead>
                    <td>&nbsp;</td>
                    <td>Name</td>
                    <td>Alter</td>
                    <td>Nationalität</td>
                    <td>Art Sitten</td>
                    <td>Wohnort</td>
                    <td>Radius</td>
                    <td>Weitere Arbeitsgebiete</td>
                    <td align="center">Profil</td>
                </thead>
                        <tbody>
                        <?php foreach ($pdo->query($sql) as $row) { ?>
                            <tr>
                                <td><img src="../service/sitter/upload/<?php echo $row['img_pass'] ?>" class="img-responsive pass" width="50" /></td>
                                <td><?php echo $row['vorname'] ?></td>
                                <td><?php echo $row['alter_sitter'] ?></td>
                                <td><?php echo $row['nationalitaet'] ?></td>
                                <td><?php echo $row['art']; ?></td>
                                <td><?php echo $row['plz'] ?> <?php echo $row['ort'] ?></td>
                                <td><?php echo $row['radius'] ?> km</td>
                                <td >
                                <?php
                                $Sitter_id = $row['Sitter_id'];
                             
                                $sql = "SELECT
                                 Sitter_id,
                                 arbeitsorte_plz,
                                 arbeitsorte_ort
                                 FROM
                                 sitter_arbeitsorte
                                 WHERE
                                 Sitter_id = $Sitter_id
                                ";
                             
                                foreach ($pdo->query($sql) as $row) {
                                echo $row['arbeitsorte_plz']. ' ' .$row['arbeitsorte_ort'].'<br />'
                                ?>
                                <?php } ?>
                                </td>
                                <td align="center"><button type="button" class="btn btn-primary" style="background:#fff; border-color:#fff;" data-toggle="modal" data-target="#profil<?php echo $row['Sitter_id'];?>"><span class="glyphicon glyphicon-eye-open green" style="font-size:16px;"></span></button></td>
                            </tr>
                            <?php } ?>
                        </tbody>
                    </table>
 

Neue Beiträge