2016-07-26 2 views
0

データを取り込んでPHPのJSONフォームに書き込むフォームがあります。フォームをJSONファイルに送信するときに配列を保持する

配列を数値入力として提出する必要がありましたが、それでも私に文字列を与え続けます。フォームをテキスト入力ボックス経由で配列として送信することは可能ですか?

形態例:

<input type="text" name="arraytobepushed[]" placeholder="EG: 1000,2000,3000" /> 

出力は次のとおり

{ 
"obj": [{ 
    "arraytobepushed": ["1000,2000,3000"] 
     }] 
} 
+1

配列型のようなものは、HTML入力ではありません。コンマで区切られた文字列入力から配列を作成する場合は、文字列を自分で分割する必要があります。 – deceze

+0

単に 'array'を' html'入力ボックスに書くことはできず、 'php'の' array'として扱われると思います。それは文字列として扱われます。だからカンマ区切りの値を入れて、 'php'' explode() 'に入れてください。それは簡単です。 –

答えて

1

あなたは、あなたがこのようなものだろうexplode()を使用して配列にテキストを回すことができる:explode()機能(この場合はカンマ)は、最初の引数で区切られたすべてのものを分割

<?PHP 
    $myArray = explode(',', $_POST['arraytobepushed[]']); 
?> 

をあなたが合格し、それを配列に格納します。あなたは、入力された場合

は、だからあなたの$myArrayは次のようになり1000, 2000, 3000た:

インデックス0 = "1000"($myArray[0]

指数1 = "2000"($myArray[1]

インデックス2 = " 3000 "($myArray[2]

値は整数ではなく文字列であることに注意してください。そのような整数に

$myArray = array_map('intval', explode(',', $_POST['arraytobepushed[]'])); 

これは、すべての要素を作る:あなたがそれらを整数にしたい場合は、これを行うことができます

インデックス0 = 1000($myArray[0]

指数1 = 2000($myArray[1]

インデックス2 = 3000($myArray[2]

0

号フォームテキストを提出します。

フィールドには、[]という名前のフィールドには、配列で表現することができます。フィールドを文字列ではなく数値として扱う特別なケースはありません。データを明示的に変換する必要があります。

+0

わかりました!それをクリアしていただきありがとうございます! – fupuchu

関連する問題