2016-05-23 11 views
1

Ich richte ein Stripe-Zahlungsformular ein, deshalb muss ich die Namen meiner Felder für Monat und Jahr entfernen, damit sie nicht an meinen Server gesendet werden. Der folgende Code gibt dem Feld dennoch den Namen '[Monat]', und wenn der Text der Variablen des Arrays 'xyz' wäre, würde das Feld 'xyz [Monat]' heißen. Wie kann ich den gesamten Feldnamen entfernen?CakePHP-Formular - Monat entfernen Feldname

echo $this->Form->month('expiration_month', array('name' => '', 'data-stripe' => 'exp_month', 'default' => 'January')); 
+0

Unset '' '$ this-> Anfrage-> Daten ['expiration_month]' '' vor dem Aufruf Stripe api http://php.net/manual/en/function.unset.php – Salines

Antwort

1

Nach the documentation, der Name des <select> Elements wird von dem ersten Funktionsargument abgeleitet („expiration_month“ in Ihrem Beispiel.) Wenn Sie einen Blick auf the code nehmen, können Sie den Wert „Monat“ sehen ist hart codiert.

Der einzige Weg, um dies zu erreichen, ist manuell erstellen Sie Ihre eigenen <select> Element, oder ignorieren Sie einfach den Wert, wenn es um Ihren Server kommt. Aber warum sollten Benutzer ein Formularelement ausfüllen, das nicht von Ihrem Server verarbeitet wird?

+1

Es wird nicht gehen mein Server, weil er direkt an Stripe gesendet wird. Auf diese Weise müssen Sie sich nicht um PCI-Compliance auf Kreditkartendaten kümmern. – thekthuser

+0

Wenn Sie jedoch kein 'name'-Attribut senden, wird es nicht von * any * -Servern verarbeitet, da es nicht vom Browser gesendet wird. – miken32

-1

So ist der schnelle und schmutzige Weg um das Auswahlfeld mit js zu finden und das name-Attribut zu überschreiben.