Avatar billede totalpc Seniormester
01. oktober 2017 - 21:38 Der er 1 kommentar

Send data med retur til dynamisk array

Jeg har en side der lister x antal arter fra en database. Den kan variere ved nye arter. Jeg har så et input felt for hver art. Her kan indtastes en vægt og når jeg submitter så gemmer jeg art og vægt som et array og sender det over i en session variabel som jeg så kan bruge på næsten side som kun viser de udfyldte felter i array'et. Her ville jeg gerne, hvis der var en fejl i en af vægtene, kunne vælge at komme tilbage til denne side med data. Jeg kan sagtens komme retur til denne side her nu, men det er uden data. Jeg kan ikke regne ud hvordan jeg skal få vist dataene i de rigtige inputfelter.
Spørg hvis noget er uklart.


<?php
                    global $wpdb;
                    $wpdb->show_errors();
                    $dag = $_GET['dag'];
                    $id = $_GET['id'];
                    $baadnr = $_GET['baadnr'];
                    $team = $wpdb->get_results( "SELECT TeamNavn FROM teams where id=$id");
                   
                If($_POST['Submit'])
                    {
                        $_SESSION['indvej'] = $_POST["indvej"];
                        $_SESSION['baadnr'] = $baadnr;
                        $_SESSION['id']     = $id;
                        $_SESSION['dag']     = $dag;
                        ?>
                        <script type="text/javascript">
                        window.location = "http://localhost/WORDPRESS/?page_id=9";
                        </script>
                       
                        <?php
                       
                        //print session_id();
                        //print_r($_SESSION);
                        //echo $_SESSION['baadnr'];
                    }
                    ?>
               
                <table style="border:none;">
                    <tr>
                        <td style="border:none;"><font size="6">Indvejning båd nr <b><?php echo $baadnr ?></b></font></td>
                        </td>
                    </tr>
                    <tr>
                        <td style="border:none;"><font size="6">Dag <b><?php echo $dag ?></b></font></td>
                        </td>
                    </tr>
                    <tr>
                        <td style="border:none;"><font size="6">Team: <b><?php echo $team[0]->TeamNavn ?></b></font></td>
                        </td>
                    </tr>
                </table>
               
               
                <?php
                    $arter = $wpdb->get_results( "SELECT id as artid, artnavn, mindstemaal, sats FROM arter order by artnavn ASC");
                    if (!empty ($arter)) {
                    // work with results.
                    ?>
                    <form action="" method="post" id="form" enctype="multipart/form-data">
                    <table style="border:none;background-color:#e0e0eb;width:100%;">
                    <tr>
                    <?php
                    foreach ($arter as $art){
                    ?>
                        <td style="border:none;width:25%">
                        <?php echo $art->artnavn ?>
                        </td>
                        <td style="border:none;">
                        <input type="text" size="10" name="indvej[<?php echo $art->artid ?>]"> gram
                        </td>
                        <td style="border:none;"><font size="2">Mindstemål <?php echo $art->mindstemaal ?> cm</font></td>
                        <td style="border:none;"><font size="2">Sats <?php echo $art->sats ?></font></td>
                        </tr>
                        <tr>
                    <?php   
                    }
                    } else {
                    // there where no results
                    }
                    ?>
                    </tr>
                    </table>
Avatar billede jakobdo Ekspert
02. oktober 2017 - 10:32 #1
Prøv følgende:

På den side du arbejder med dine $_POST data, prøv at lav:

$_SESSION = $_POST

og så print:

<?php
echo '<pre>';
print_r($_SESSION);
echo '</pre>';
?>

Så skal du "bare" loope disse session data og så kan du arbejde med dem som du lyster.
Og vil du tilføje fejl eller lignende validering, smider du dem "bare" i et array ala:

$_SESSION['validering'][$_ART_ID] = "Valideringsfejl";
$_SESSION['fejl'][$_ART_ID] = "Fejl på art nummer XXX, du må ikke!!!";

Så kan du nemlig "loope" alt på artid'et.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester