2017-02-21 27 views
0

昨日特定の興味深い問題が発生しました。私たちは、次のHTMLコードブロックを持っていると仮定しますHtml同じ名前の複数の入力要素

<div id="addresses"> 
<input type="text" name="address" id="addr1" /> 
<input type="text" name="address" id="addr2" /> 
<input type="text" name="address" id="addr3" /> 
</div> 

このフォームを掲示しながら、同じ名前を持つ入力要素が結合され、値はカンマ文字で区切られます。私たちが値を持っている場合たとえば、のように次のよう

addr1 = 'TEST TEST XXX' 
addr2 = 'YYY ZZZ 11111' 
addr3 = 'ZZZ KKK TEST ' 

提出フォームポストデータは次のとおりです。

address = 'TEST TEST XXX', 'YYY ZZZ 11111', 'ZZZ KKK TEST ' 

、私は、サーバー側の配列の要素として、これらの各値を取得することができます(3配列の異なる要素)。その後、送信されたフォームデータになる

addr1 = 'TEST, TEST XXX' 
addr2 = 'YYY ZZZ, 11111' 
addr3 = 'ZZZ KKK, TEST ' 

:値は以下のようにしている場合でも、

address = 'TEST, TEST XXX', 'YYY ZZZ, 11111', 'ZZZ KKK, TEST ' 

その後、結果の配列は完全に間違っている6つの要素が含まれています。私は値に含まれているCOMMA文字がエスケープされていないと信じています。

この問題に関するアイデア。事前にありがとうございます...

答えて

0

1つのNAME属性値を持つ複数の入力フィールドを使用する代わりに、一意の値を使用してください。それはあなたのコードをはるかに堅牢にすることができます。 PHP側で

<div id="addresses"> 
<input type="text" name="addr1" id="addr1" /> 
<input type="text" name="addr2" id="addr2" /> 
<input type="text" name="addr3" id="addr3" /> 
</div> 

:あなたは、配列を使用していない

<?php 
$address = array($_REQUEST['addr1'], $_REQUEST['addr2'], $_REQUEST['addr3']); 
?> 
+0

私はサーバー側でPHPを使用していません。私はJava - Spring MVCを使用しています。私が求めているのは、一般的な/サーバー技術にとらわれない解決策です。おそらく、区切り文字(カンマ)を変更したり、区切り文字をエスケープしたりします。 – Ahmet

+0

そして、あなたの状況でそれが可能な場合は、区切り文字を実際に変更してください。 – Cagy79

1

変更するには、このような各入力:

<input type="text" name="address[]" id="addr1" /> 

とするとき、あなたが他のコンマまたは約あらゆる問題なく配列を持つことになり、データをフェッチします。

$_POST['adddess']=array(0=>'TEST, TEST XXX',1=>'YYY ZZZ, 11111',2=>'ZZZ KKK, TEST '); 

、あなたは、このHTML

<div id="addresses"> 
    <form:input path="address[0]" /> 
    <form:input path="address[1]" /> 
    <form:input path="address[2]" /> 
</div> 

と春はString[] addressサーバー側のオブジェクトと副の値を使用して入力テキストを取り込む必要があるインデックス

+0

私はサーバー側でPHPを使用していません。私はJava - Spring MVCを使用しています。私が求めているのは、一般的な/サーバー技術にとらわれない解決策です。おそらく、区切り文字(カンマ)を変更したり、区切り文字をエスケープしたりします。 – Ahmet

+0

質問に使用する言語を投稿していません。それを編集しました。とにかく、投稿された値を取得するJavaの方法で答えの2番目の部分を有効にすることができると思います –

0

使用に基づいて各項目にアクセスすることができます-versa。

ここをクリックしてください:http://bitbybitblog.com/forms-and-data-models-in-spring-mvc/

+0

各入力名(つまり、address_1、address_2)にインデックス値を追加することによって入力名を一意の値に変更しました。 – Ahmet

関連する問題