2016-05-10 22 views
-1

Ich habe eine Profilseite, auf der Benutzer ihr Profil bearbeiten können, ich habe ihnen ein Skill-Formular zur Verfügung gestellt, wo sie eingeben können & Prozentsatz von wie viel Sie perfekt darin sind->So speichern Sie mehrere Daten in einem Array

Skill1 percentage 86% Add more 

diese mehr Taste fügt

So, jetzt dynamisch Eingabefeld hinzufügen, wenn ich versuche hier, um diese Daten zu speichern ist, was ich $ _POST

$_POST['skill']; 
$_POST['percentage']; 

in bekommen habe ich versucht, sie in einem Array hinzugefügt, so dass ich es in der Datenbank zu speichern, sondern weil von mehrer dynamischen Feld bekommt es chaotisch & dann hier ist, was ich in Array erhalte

Array 
(
    [0] => Photoshop 
    [1] => 55% 
    [2] => PHP 
    [3] => 35% 
) 

Wie kann ich wissen, leicht, dass dieser Prozentsatz dieser Fertigkeit ist

Manchmal sieht Array wie

Array 
    (
     [0] => 55% 
     [1] => Photoshop 
     [2] => PHP 
     [3] => 35% 
    ) 

so wie ich dynamische Felddaten in ein Array speichern kann, so dass später es richtig an den

Benutzer angezeigt werden kann
+1

Ich denke, die Werte sind in diesen zwei '$ _POST' Werten getrennt ?! – Rizier123

+0

@ Rizier123 $ _POST ['Fähigkeit']; Hat den Skillnamen & $ _POST ['Prozentsatz'] erhalten. habe nur percentage –

+0

Wie senden Sie Ihre Daten von der Client-Seite? –

Antwort

3

müssen Sie eine Reihe von Feldern in dem Formular setzen, wenn Sie mehrere Werte eingeben möchten, wie:

<input type="text" name="skills[]"> 
<input type="text" name="percentage[]"> 

und dann in PHP-Skript:

foreach($_POST['skills'] as $index => $value) { 
    $skills[$value] = $_POST['percentage'][$index]; 
} 

davon aus, dass Fähigkeiten und Prozentsatz sind Arrays mit derselben Größe.

3

ein Array-Format verwenden, die Sie mögen:

<input name='skill[0]'> 
<input name='percentage[0]'> 
<input name='skill[1]'> 
<input name='percentage[1]'> 

, dass Sie zwei Arrays geben, wo die Indizes entsprechen, zum Beispiel:

(
    [skills] => Array 
     (
      [0] => Photoshop 
      [1] => Word 
     ) 
) 

Und:

(
    [percentage] => Array 
     (
      [0] => 65% 
      [1] => 90% 
     ) 
) 

konnte Sie dann Verwenden Sie array_combine($_POST['skills'], $_POST['percentage']), um etwas zu erhalten:

Array(
     [Photoshop] => 65% 
     [Word] => 90% 
    ) 

Sie könnten name='skill[] und verwenden, um sie dynamisch zu erstellen, anstatt numerische Indizes zu verwenden. Wenn Sie dies jedoch mit Checkboxen versuchen, funktioniert das nicht so, wie Sie vielleicht denken.

+0

Es würde auch tun, wenn Sie nur 'name = 'skill []' und' name = 'Prozentsatz [] 'verwenden und viel einfacher und flexibler – RiggsFolly

+0

tatsächlich bin ich benutze x editierbares Plugin, das Eingabefeld an seiner Stelle bearbeitet , also wird die gesamte Anfrage einzeln gesendet. –

+0

Sie müssen Ihre Frage mit der Erstellung/dem Namen von Formularelementen und der Art und Weise, wie das Array aussieht und was Sie benötigen oder denken, aktualisieren. – AbraCadaver

Verwandte Themen