Avatar billede suulut_sdj Juniormester
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;
}
?>
Avatar billede moddi100 Seniormester
11. september 2013 - 00:18 #1
Prøv at udskrive hvad du modtager:
echo "<pre>";
print_r($_POST);
echo "</pre>";
Avatar billede suulut_sdj Juniormester
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
Avatar billede 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
Avatar billede suulut_sdj Juniormester
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;
}
?>
Avatar billede suulut_sdj Juniormester
13. september 2013 - 00:56 #5
Se bort fra svaret, det er den sidste form i rækken der bliver hentet fra til..
Avatar billede 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 />";

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