2017-04-03 8 views
0

haben ein kleines Problem. In diesem Teil des Codes:Ändern Wert in Array zu bearbeitbaren Eingabefeld

<?php 
$data = [ 
    "eCheckDetails"=>[ 
    "paymentsReceived"=>$history["transactionSummary"]["eCheckTotal"], 
    "revenueReported"=>$history["transactionSummary"]["eCheckTotal"], 
    "fundsDeposited"=>$history["transactionSummary"]["eCheckTotal"], 
    "accountAdjustment"=>0.00], 

"paymentCardDetails"=>[ 
    "paymentsReceived"=> $history["transactionSummary"]["paymentCardTotal"], 
    "revenueReported"=> $history["transactionSummary"]["paymentCardTotal"], 
    "fundsDeposited"=> $history["transactionSummary"]["paymentCardTotal"], 
    "accountAdjustment"=>0] 
    ]; 

Daten "$ Geschichte [...] [...]"

wird aus einer anderen Datei oder Datenbank (es ist nicht wirklich wichtig, von wo) genommen

Punkt ist, dass diese Daten manchmal falsch sind und manuell geändert werden müssen. Und das ist meine Frage. Wie diese Felder zu machen (wobei $ Geschichte [..] [..] ist) bearbeitet werden, unter $ Geschichte [versteckt

  <input type="text"> 

(mit kleinem Knopf akzeptieren oder smg irgendwo beiseite) mit Standardwert sein .. ] [..]. Ich habe versucht, es zu tun, aber seine innere Anordnung und hatte kein Glück. Vielleicht weiß jemand?

Mit freundlichen Grüßen

+0

Sie Namen auf Ihre Eingabefelder in dieser Form 'geben kann 'und wenn Sie Ihr Formular POST, wird PHP ein Array in $ _POST [' Geschichte '] bekommen ... ich denke. – Dimi

Antwort

0

Sie können in Ihren HTML-Attribute verwenden, genannt Schlüssel, zum Beispiel <input ... name="history[transactionSummary][eCheckTotal]">. Übergeben Sie diese zurück an den Server füllt Ihr Array.

<?php 

$form = <<<EOS 
    <form method="post" action=""> 
     <input type="text" value="" name="history[transactionSummary][eCheckTotal]"> 
    </form> 
EOS; 

if ($_SERVER['REQUEST_METHOD'] === 'POST') { 
    var_dump($_POST); 
} else { 
    echo $form; 
} 

Der Inhalt des $_POST Superglobal wird:

Array 
(
    [history] => Array 
    (
     [transactionSummary] => Array 
     (
      [eCheckTotal] => dsdsa 
     ) 
    ) 
) 
+0

Danke! Kannst du mir noch etwas sagen? wie dieser Weg mehr als eine Eingabedaten senden. Ich meine, ich muss 8 von ihnen bearbeiten, aber das Drücken von Enter nach dem Füllen aller 8 Eingänge tut nichts. Kann es in einer Form gemacht werden?/Ohne butonns/ – widmopl

+0

Dies ist ein Client-Problem, wie die Daten im Browser dargestellt werden. Die meisten Browser senden bei Enter, wenn Sie folgendes haben:

', dies setzt jedoch voraus, dass Sie haben keine Event-Handler, die es blockieren könnten. – motanelu

Verwandte Themen