Archief - Variabele post-buttons!

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Deadangel

Legacy Member
Zero Grav zei:
Als ge hier niet op gaat reageren gaat het niet opgelost geraken. Zolang wij niet weten wat voor element gekozen is en hoe gij het verwerkt gaat het niet werken. We moeten dus een formelement gaan zien met de naam gekozen[].

En sowieso is $obj->Materiaal_ID daar fout. Zie ook de andere opmerking van passero.

--

'k Heb ook zo het gevoel dat gij gewoon die data uit uw database wilt halen en helemaal niet uit een post element? Dus dat gij data UIT $obj->Materiaal_ID probeert te halen? Dan zijt ge op deze manier fout bezig, want foreach op die manier probeert de data van $_POST['gekozen'] in $obj->Materiaal_ID te pompen.

Dat ene is opgelost;

<input type="submit" value="Selecteer" name="gekozen[<?php echo $obj->Materiaal_ID; ?>]""/>

Maar dat 2de kan wel zijn denk ik, ik begrijp niet echt wat je bedoelt.

passero

Legacy Member
Deadangel zei:
Dan krijg ik deze fout:


Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\Layout\mat.php on line 44

Mss dom ze... maar ik zie net da ik POS[ ipv POST[ heb geschreven in mijn voorbeeld, ge hebt toevallig geen copy, paste gedaan? :P

Wat ge ook kunt doen om ons wa te helpen is t volgende:

echo '<pre>''
print_r($_POST['gekozen']);
echo '</pre>';

Dit gaat de inhoud van die array gewoon outputten. Copy, paste de inhoud keer hier als ge wilt.

Deadangel

Legacy Member
passero zei:
Mss dom ze... maar ik zie net da ik POS[ ipv POST[ heb geschreven in mijn voorbeeld, ge hebt toevallig geen copy, paste gedaan? :P

Wat ge ook kunt doen om ons wa te helpen is t volgende:

echo '<pre>''
print_r($_POST['gekozen']);
echo '</pre>';

Dit gaat de inhoud van die array gewoon outputten. Copy, paste de inhoud keer hier als ge wilt.

Ja, ik had het gecopy/past.. 'k eb de T er nu bijgezet, en nu krijg ik gewoon een witte regel.

Het resultaat is:

Array
(
[0] => Selecteer
)

passero

Legacy Member
Deadangel zei:
Ja, ik had het gecopy/past.. 'k eb de T er nu bijgezet, en nu krijg ik gewoon een witte regel.

Het resultaat is:

Array
(
[0] => Selecteer
)

Kijk sorry hoor... Maar als ge zelf de moeite niet doet om de kijken wat er eventueel mis was met wat ik u voorgeschoteld heb dan doe ik ook geen moeite meer om te helpen...

Als ge het iets of wat serieus zou nemen dan had je al zeer snel zelf gevonden dat die T er moest bijstaan. Nu doe je totaal geen moeite en laat je alles aan ons over.

Tot zover mijn bijdrage om u te helpen...

Deadangel

Legacy Member
Ondertussen werkt het al
MAAR! Mijn post-button heeft nu de code ( Volledige code onderaan dit bericht )
Code:
<input type="submit" id="post" value="<?php echo $obj->Materiaal_ID; ?>" name="post[<?php echo $obj->Materiaal_ID;?>]"/>
Nu ziet ge, ik moet de naam van mijn post button mijn id geven, want als ik de post knop "kies" zou noemen, en dan op kies zou drukken, dan word er later "kies" ge-echo'd,.. Nu weet er iemand een oplossing waarmee ik mijn buttun "Kies" kan laten noemen, mààr toch het ID kan echo'en ?


Code:
if($_SERVER['REQUEST_METHOD']=='POST') { 
 
 	$nr = $_GET['nr'];
	$klas = $_GET['klas'];
	$cat= $_GET['cat'];
      $query = mysql_query("SELECT * FROM materiaal WHERE rubriek='" . $cat . "'") or die(mysql_error());
                $obj = mysql_fetch_object($query);
            echo'<BR><div class="blok">';
                    echo'Nr. ';
                    echo $nr;
                    echo' van klas ';
                    echo $klas;
                    echo' heeft het volgende materiaal mee: ';
                    echo'<BR>';
foreach ($_POST['post'] as $obj->Materiaal_ID => $ID)
       {
echo $ID;
       }
        
	} 
	}
?>


<form method="post">
<center>
  <table width="376">
    <tr>
      <th width="76" bgcolor="#666666" scope="col">Voorwerp</th>
      <th width="44" bgcolor="#666666" scope="col">Aantal</th>
      <?php if(isset($_GET['nr'])) { ?> <th width="150" bgcolor="#666666" scope="col">Kiezen</th><?php } ?>
    </tr>
    <?php 
		$cat= $_GET['cat'];
  $query = mysql_query("SELECT * FROM materiaal WHERE rubriek='" . $cat . "'") or die(mysql_error());
    while ($obj = mysql_fetch_object($query)) {
				?>
    <tr>
      <td><center>
       <?php echo $obj->Omschrijving; ?>
      </center></td>
      <td><center>
        <?php echo $obj->Aantal_beschikbaar; ?>
      </center></td>
     <?php if(isset($_GET['nr'])) { ?> <td><center>
        <input type="submit" id="post" value="<?php echo $obj->Materiaal_ID; ?>" name="post[<?php echo $obj->Materiaal_ID;?>]"/>
      </center></td><?php } ?>
    </tr>
    <?php
  }
  ?>
  </table>
 </form>

Cycloon

Legacy Member
Mja je kan de naam van een knop niet ophalen met PHP. Je zal een hidden field ofzo moeten gebruiken om je id door te geven.

Cycloon

Legacy Member
Je kan enkel de value van een knop opvragen, en dat is ook wat er getoond wordt aan de gebruiker. Het spreekt dus voor zich dat je in de value geen id kan steken (want een gebruiker heeft niks aan een knop met de id op). De name van een button kan je niet ophalen vanuit de POST data, dus er zit niks anders op dan een extra input veld te maken met type="hidden" en daar je id als value in te bewaren.

Deadangel

Legacy Member
Nu zit ik met het probleem dat hij alle hidden inputs echo't, ik heb 't gevoel dat 'k een conditie aan die foreach moet geven, maar ik heb eigenlijk geen enkel idee welke, iemand een suggestie ?
Code:
if($_SERVER['REQUEST_METHOD']=='POST') {

   $nr = $_GET['nr'];
   $klas = $_GET['klas'];
   $cat= $_GET['cat'];
      $query = mysql_query("SELECT * FROM materiaal WHERE rubriek='" . $cat . "'") or die(mysql_error());
                $obj = mysql_fetch_object($query);
            echo'<BR><div class="blok">';
                    echo'Nr. ';
                    echo $nr;
                    echo' van klas ';
                    echo $klas;
                    echo' heeft het volgende materiaal mee: ';
                    echo'<BR>';
foreach ($_POST['hidden'] as $obj->Materiaal_ID => $ID)
       {
echo $ID;
       }
      
foreach ($_POST['post'] as $obj->Materiaal_ID => $ID)
       {
echo $ID;
       }
       
   }
   }
?>


<form method="post">
<center>
  <table width="376">
    <tr>
      <th width="76" bgcolor="#666666" scope="col">Voorwerp</th>
      <th width="44" bgcolor="#666666" scope="col">Aantal</th>
      <?php if(isset($_GET['nr'])) { ?> <th width="150" bgcolor="#666666" scope="col">Kiezen</th><?php } ?>
    </tr>
    <?php
      $cat= $_GET['cat'];
  $query = mysql_query("SELECT * FROM materiaal WHERE rubriek='" . $cat . "'") or die(mysql_error());
    while ($obj = mysql_fetch_object($query)) {
            ?>
    <tr>
      <td><center>
       <?php echo $obj->Omschrijving; ?>
      </center></td>
      <td><center>
        <?php echo $obj->Aantal_beschikbaar; ?>
      </center></td>
     <?php if(isset($_GET['nr'])) { ?> <td><center>
     <input type="hidden" name="hidden[<?php echo $obj->Materiaal_ID;?>]" value="<?php echo $obj->Materiaal_ID;?>">
        <input type="submit" id="post" value="Kies>" name="post[<?php echo $obj->Materiaal_ID;?>]"/>
      </center></td><?php } ?>
    </tr>
    <?php
  }
  ?>
  </table>
</form>

Nu z

Cycloon

Legacy Member
Je form tags moeten binnen de while staan omdat anders alles 1 grote form is en dus wordt alles gepost bij het drukken op je knop.

Ook is het dan niet meer nodig om je hidden inputboxes een verschillende naam te geven. Noem die gewoon hidden en vraag $_POST["hidden"] op.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan