webentwicklung-frage-antwort-db.com.de

Posting-Array vom Formular aus

Ich habe auf meiner Seite ein Formular mit einer Reihe von Eingaben und einigen versteckten Feldern. Ich wurde gebeten, diese Daten über ein "Post-Array" zu übergeben. 

Hier ist ein Ausschnitt davon, was ich gerade mache

<form enctype="multipart/form-data" action="process.php" method="POST"> 
...
more inputs
...

<!-- Hidden data -->
<input type="hidden" name="TimeToRenderHoursInput" value="<?php echo $RenderHours; ?>" />
<input type="hidden" name="TimeToRenderDaysInput" value="<?php echo $RenderDays; ?>" />
<input type="hidden" name="TimeToRenderYearsInput" value="<?php echo $RenderYears; ?>" />
<input type="hidden" name="ContentMinutesInput" value="<?php echo $ContentMinutes; ?>" />
<input type="hidden" name="ContentMinutesSelector" value="<?php echo $ContentMinutesSelector; ?>" />
<input type="hidden" name="PriorityInput" value="<?php echo $Priority; ?>" />
<input type="hidden" name="AvgFrameRenderTimeInput" value="<?php echo $AverageFrameRenderTime; ?>" />
<input type="hidden" name="AvgFrameRenderTimeSelector" value="<?php echo $AverageFrameRenderSelector; ?>" />
<input type="hidden" name="CoresInTestInput" value="<?php echo $CoresInTest; ?>" />
<input type="hidden" name="EstPriceInput" value="<?php echo $EstPrice; ?>" />
<!-- End hidden -->

<input type="image" src="http://www.venndigital.co.uk/testsite/renderbutton/_includes/images/button/submit.jpg" alt="Submit" value="Submit" style="border:0!important;" />

In meiner process.php rufe ich dann die Daten als solche auf ...

$first_name = $_POST['first_name']; 
$company_name = $_POST['company_name']; 
$email_from = $_POST['email']; 
$address = $_POST['address']; 
$postcode = $_POST['postcode']; 
$RenderHours = $_POST['TimeToRenderHoursInput'];
$RenderDays = $_POST['TimeToRenderDaysInput'];
$RenderYears = $_POST['TimeToRenderYearsInput'];
$ContentMinutes = $_POST['ContentMinutesInput'];
$ContentMinutesSelector = $_POST['ContentMinutesSelector'];
$Priority = $_POST['PriorityInput'];
$AverageFrameRenderTime = $_POST['AvgFrameRenderTimeInput'];
$AverageFrameRenderSelector = $_POST['AvgFrameRenderTimeSelector'];
$CoresInTest = $_POST['CoresInTestInput'];
$EstPrice = $_POST['EstPriceInput'];

Gibt es eine Möglichkeit, es als Array zu posten? Ist meine Methode überhaupt eine schlechte Praxis? 

16
Liam

gib jedem Eingang einen Namen wie

<input type="hidden" name="data[EstPriceInput]" value="" />

dann die in php 

 $_POST['data'];

  print_r($_POST);//print out the whole post
  print_r($_POST['data']); //print out only the data array

wird ein Array sein

41
mcgrailm

Wenn Sie diese Daten bereitstellen, werden sie als Array in $ _POST gespeichert. 

Sie könnten optional so etwas tun: 

<input name="arrayname[item1]">
<input name="arrayname[item2]">
<input name="arrayname[item3]">

und 

$item1 = $_POST['arrayname']['item1'];
$item2 = $_POST['arrayname']['item2'];
$item3 = $_POST['arrayname']['item3'];

aber ich verstehe den Punkt nicht. vielleicht mehr klärung bekommen?

5
David Houde

Das machst du ja schon. Wenn das Formular gesendet wird, werden die Daten durch ein Post-Array ($ _POST) geleitet. Ihre process.php empfängt dieses Array und verteilt seine Werte als einzelne Variablen.

4
Allen

Warum senden Sie es per Post, wenn Sie es bereits auf der Serverseite (PHP) haben?

Warum speichern Sie das Array nicht einfach in der Variablen $_SESSION, damit Sie es verwenden können, wenn das Formular gesendet wird. Dies macht es möglicherweise "sicherer", da der Client die Variablen nicht durch Bearbeiten der Quelle ändern kann. 

Es hängt davon ab, wie Sie wirklich wollen.

0
Naina

Sie können die eingebaute Funktion verwenden:

extract($_POST);

für jeden Eintrag in $_POST wird eine Variable erstellt.

0
Manunich