2016-09-16 1 views
0

In einer Form innerhalb eines sqlsrv_fetch_array Ich habemehr als eine Variable in PHP-Arrays

<select class="styled-select" name="StockArray['.$row1['ProductID'].']" required><option selected></option><option>0</option><option>1</option><option>2</option><option>3</option><option>4</option><option>5</option><option>6</option><option>7</option><option>8</option><option>9</option><option>10</option><option>11</option><option>12</option><option>13</option><option>14</option><option>15</option></select> 

und auf der Seite nach, dass dieses Formular I foreach habe ein Insert zu konstruieren.

$InsertDate = date("Y-m-d H:i:s"); 

foreach ($_POST['StockArray'] as $ProductID => $Qty) {$InsertList .= "('".$ProductID."', '".$Qty."', '".$InsertDate."', '1'),";} 
$InsertList = rtrim($InsertList, ','); 

Was würde Ich mag eine zusätzliche Variable _POST innerhalb von $ passieren [ 'StockArray'] genannt row1 $ [ 'LastQty'] so kann ich eine zusätzliche Spalte in meinem Einsatz hinzufügen. Ich denke nicht, dass es technisch möglich ist, dass ein Array mehr als einen Wert pro Schlüssel hat, aber ich bin hier, um zu sehen, ob es einen Workaround dafür gibt, was ich versuche zu tun.

+0

'StockArray []' Vielleicht – devpro

+0

@devpro Ich bin nicht sicher, was auf dem ich suche, ich dort noch ID wollen Produkt aber ich würde auch mag auch $ row1 ['LastQty'] übergeben, zum Beispiel –

Antwort

1

Sie können durch die Codierung/Decodierung der Variablen. So zum Beispiel, wenn Ihr ProduktID 4 und Sie wollen ein LocationID kodieren (lassen Sie 28 sagen), dann können Sie den Namen der Variablen wie folgt aus: P4L28, so in php:

$sel = '<select class="styled-select" name="' . "P{$row1['ProductID']}L{$row1['LocationID']}" // and so on... 

Dann müssen Sie schauen die $ _POST für jede Kombination:

foreach ($_POST as $code => $qty) { 
    echo "$code => $qty <br>" ;  
} 

Wenn Sie nur ausgeben müssen die lastQty in Form, dann können Sie drucken Sie es einfach als normaler HTML, weil Sie es nicht in der _POST $ benötigt, zurück.

<select ...><p>Last quantity: <?php echo $row1['lastQty'] ; ?></p> 


    . 
+0

Großartig, ich habe ein paar Verbesserungen vorgenommen, aber das funktioniert gut für das, was ich wollte, danke in der Form: name = "StockArray ['." {$ row1 ['ProductID']} ;; {$ row1 ['LastQty']} ". ']" und im Ergebnis für jeden: foreach ($ _POST [' StockArray '] als $ variable => $ Qty) {list ($ ProductID, $ LastQty) = explodieren (";;", $ Variablen); echo $ Produkt-ID. ' '. $ Menge.' '. $ Letzte Menge.'
';} –

+1

Interessant, ich habe nicht über die Verwendung von explode() nachgedacht, danke für die Rückmeldung. –

+0

Kein Problem, ich kann es nicht als einen originellen Gedanken behaupten, nur den Weg, den ich gefunden habe, als ich nach einem Weg suchte, die Werte auf der anderen Seite zu trennen. –

Verwandte Themen