suulut_sdj Novice
10. september 2013 - 22:38 Der er 6 kommentarer

får ikke data fra input felter

Jeg modtager ikke værdierne fra mine input felter.
Jeg har lavet et loop som f.eks. giver 14 forms, alt tekst og billeder kommer korrekt i de forskellige forms. Men når man trykker på submit kommer dataene ikke med over?

HTML KODE:
<form method="POST" action="/shop/action/ordre_action.php">
    <?php
    echo "<table><tr>";
    $i=0;
$antal = 4; // det antal tabeller der vises vertikalt
$num_id = 1; // tæller til UNIK navngivning af input felter
while($row = mysql_fetch_array($query)) {
    $resultat[] = $row;
    $vare_id = $row['vare_id'];
    if($i%$antal == 0){   
        echo "</tr><tr>";
    } ?>
        <td>
        <table border="1" cellspacing="2" cellpadding="2" height="170" width="200"> 
            <input type="hidden" name="dato[<?php echo $num_id; ?>]" value="<?php echo $datee; ?>]"/>
            <input type="hidden" name="username[<?php echo $num_id; ?>]" value="<?php echo $user; ?>"/>
            <input type="hidden" name="firma_id[<?php echo $num_id; ?>]" value="<?php echo $_COOKIE[firma_id]; ?>"/>
            <input type="hidden" name="vare_id[<?php echo $num_id; ?>]" value="<?php echo $row['vare_id']; ?>"/>
            <input type="hidden" name="varenavn[<?php echo $num_id; ?>]" value="<?php echo $row['varenavn']; ?>"/>
            <input type="hidden" name="pris[<?php echo $num_id; ?>]" value="<?php echo $row['pris']; ?>">
            <input type="hidden" name="ordre_id[<?php echo $num_id; ?>]" value="<?php echo $_COOKIE[ordre_id]; ?>"/>
            <tr><td height="25"><b><?php echo $row['varenavn']; ?></b></td></tr>
            <tr><td height="25">Kolli str.: <?php echo $row['kollistr']; ?></td></tr>
            <tr><td height="25">Pris pr. stk:<?php echo $row['pris']; ?> </td></tr>
            <tr><td height="25">Kolli antal: <br/><input type="number" name="antal[<?php echo $num_id; ?>]" id="antal"/></td></tr>
            <?php //if(!empty($row['vare_billede'])): ?>
            <tr><td><img src="/css/images/<?php echo $row['vare_billede'];?>" /></td></tr>
            <?php //endif; ?>
            <tr><td><input type="submit" name="submit[<?php echo $num_id; ?>]" value="Bestil<?php echo $num_id;?>"></td></tr>
        </table></td>
        <?php $i++;    $num_id++;
        }
        echo "</tr>"; echo "</table>";
        ?>
        </form>

php filen:
<?php
$ordre_id = $_COOKIE['ordre_id'];
$vare_antal = $_POST['antal'][$num_id];
$vare_navn = $_POST['varenavn'][$num_id];
echo "ordre id".$ordre_id."<br>vare navn:". $vare_navn."<br> Antal". $vare_antal;
exit;
}
?>
moddi100 Seniormester
11. september 2013 - 00:18 #1
Prøv at udskrive hvad du modtager:
echo "<pre>";
print_r($_POST);
echo "</pre>";
suulut_sdj Novice
11. september 2013 - 21:49 #2
Tak for svaret, jeg får de informationer som jeg gerne vil have. Og vigtigst er at udfra den submit knab jeg trykker på kommer de rigtige info med:
[submit] => Array (
            [3] => Bestil3
MEN jeg kan ikke finde ud at få dem frem via:
$vare_antal = $_POST['antal'][$num_id];
$vare_navn = $_POST['varenavn'][$num_id];
hvordan får jeg informationerne med over
moddi100 Seniormester
12. september 2013 - 00:21 #3
Men er det så ikke bare fordi du ikke har angivet $num_id ? Prøv f.eks. følgende, hvor vi antager at du ikke kender antallet af inputfelter. Vi antager at hvis ét felt er udfyldt, jamen så er de andre i samme forbindelse også.

if(isset($_POST['varenavn']))
{
  foreach($_POST['varenavn'] as $num_id => $unused)
  {
      $vare_antal = $_POST['antal'][$num_id];
      $vare_navn = $_POST['varenavn'][$num_id];
      ...
  }

}


Hvis det ikke virker, må du lige copy-paste hele outputtet ind, evt. via www.pastebin.com
suulut_sdj Novice
13. september 2013 - 00:41 #4
Det hjalp rigtig meget :-)
Print fra php filen:
dato:2013-09-12]
ordre id22
vare navn:Appelsinjuice drikkeklar 10 l
Antal:
Firma ID:4
vare id:15

men Antal kommer ikke med. Selv om de figurerer her:
echo "<pre>";
print_r($_POST);
echo "</pre>"; :

  [antal] => Array
        (
            [1] =>
            [2] => 10
min php kode:
<?php
session_start();
require_once("../../administrator/config/config.php");
if ($admin_cookie == FALSE) {
header("location: /index.html");
}
else {
if(isset($_POST['vare_id']))
{
  foreach($_POST['vare_id'] as $num_id => $unused)
  {
    $dato = $_POST['dato'][$num_id];
    $vare_antal = $_POST['antal'][$num_id];
    $vare_navn = $_POST['varenavn'][$num_id];
    $firma_id = $_POST['firma_id'][$num_id];
    $vare_id = $_POST['vare_id'][$num_id];
    $vare_pris = $_POST['pris'][$num_id];
    $username = $_POST['username'][$num_id];
  }
}
$ordre_id = $_COOKIE['ordre_id'];

//$sql = "INSERT into npjo9_ordre_varenr values('', '$_POST[dato]', '$_POST[firma_id]', '', '$_POST[vare_id]', '$_POST[varenavn]', '$_POST[antal]', '$_POST[pris]', '', '', '', '0', '$ordre_id')";
//$query = mysql_query($sql) or die(mysql_error());
//header("location: ../shop.php");
echo "dato:".$dato."<br>ordre id".$ordre_id."<br>vare navn:". $vare_navn."<br> Antal:".$_vare_antal."<br>Firma ID:".$firma_id."<br> vare id:".$vare_id."<br>pris:".$pris."<br>bruger:".$username;
echo "<pre>";
print_r($_POST);
echo "</pre>";
exit;
}
?>
suulut_sdj Novice
13. september 2013 - 00:56 #5
Se bort fra svaret, det er den sidste form i rækken der bliver hentet fra til..
moddi100 Seniormester
13. september 2013 - 10:38 #6
Du har sat en _ foran i variablen $_vare_antal når du udskriver. Derudover skal du sørge for at flytte den sidste del ind i foreach-løkken også. Ellers opererer du i bedste tilfælde med den sidste række, som du selv nævner.

Alt behandling af data bør foregå inde i løkken:
if(isset($_POST['vare_id']))
{
  $ordre_id = $_COOKIE['ordre_id'];

  foreach($_POST['vare_id'] as $num_id => $unused)
  {
    $dato = $_POST['dato'][$num_id];
    $vare_antal = $_POST['antal'][$num_id];
    $vare_navn = $_POST['varenavn'][$num_id];
    $firma_id = $_POST['firma_id'][$num_id];
    $vare_id = $_POST['vare_id'][$num_id];
    $vare_pris = $_POST['pris'][$num_id];
    $username = $_POST['username'][$num_id];



    // Denne kode gentages for hver række, blot med de nye værdier

//$sql = "INSERT into npjo9_ordre_varenr values('', '$_POST[dato]', '$_POST[firma_id]', '', '$_POST[vare_id]', '$_POST[varenavn]', '$_POST[antal]', '$_POST[pris]', '', '', '', '0', '$ordre_id')";
//$query = mysql_query($sql) or die(mysql_error());
//header("location: ../shop.php");
echo "dato:".$dato."<br>ordre id".$ordre_id."<br>vare navn:". $vare_navn."<br> Antal:".$_vare_antal."<br>Firma ID:".$firma_id."<br> vare id:".$vare_id."<br>pris:".$pris."<br>bruger:".$username;
echo "<pre>";
print_r($_POST);
echo "</pre>";
echo "<hr />";

  }
}
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

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





Premium
Test: Huaweis Matebook X er særlig laptop med en svaghed, som du skal være opmærksom på
Huawei beviser endnu en gang, at de sagtens kan mingle sig med de bedste pc-producenter. Men alligevel skyder selskabet lidt ved siden af, med sin nyeste maskine.
Computerworld
Bitcoinen nåede lige at kulminere igen – men så kom krakket
Der blev sat en ny rekord for bitcoinens værdi i år – men godt 24 timer efter blev der høvlet næsten 20.000 kroner af den.
CIO
Podcast: Her er seks gode råd om ledelse og digitalisering fra danske top-CIO'er
The Digital Edge: Vi har talt med 17 af Danmarks dygtigste digitale ledere - og samlet deres seks bedste råd om digitalisering og ledelse. Få alle rådene på 26 minutter i denne episode af podcasten The Digital Edge.
Job & Karriere
Se Waoos forklaring: Derfor har selskabet fyret topchef Jørgen Stensgaard med omgående virkning
Waaos bestyrelse opsiger fiberselskabets topchef, Jørgen Stensgaard, der fratræder med omgående virkning. Se hele forklaringen fra Waao her.
White paper
Overser du muligheder for at optimere din Dynamics-investering?
Der er omfattende og ofte oversete muligheder for at understøtte centrale forretningsprocesser med Dynamics 365 Finance & Operations. For eksempel i form af fuld EDI-integration, som optimerer logistik og forsyning. Eller ved at automatisere håndteringen af konsignation eller centrale processer vedrørende elektronisk dokumentflow og dropshipping. Læs mere i dette whitepaper, der også går i dybden med fire konkrete cases.