さて、私は雇用主が製品を入力できるように何かを構築しています。彼らには非常に具体的な要件があります。私はそのような動的に生成されたフィールドを持つフォームを持っています...(明らかに従うべき正確なコードではありませんが、例は概念的に同じです)
<input type="text" name="attribute[20]"> inputted value = height
<input type="text" name="attribute[27]"> inputted value = width
数値はデータベース内のものに基づいて生成されるため、たとえば、20は「幅」に相関し、27は「高さ」に相関します。
したがって、ユーザーが値を入力したら、データベースに入力するためにそれらの値が必要です...またはテストでは、エコーアウトします。
foreach ($_POST['attribute'] as $attributes){
echo key($attributes).' '.$attributes.'<br>';
}
だからそれは出力する必要があります...
20 height value<br>
27 width value
代わりに出力します
height value<br>
width value
何が起こっている?私は似たようなものを持っています...しかし、定義された数値は複数の入力を持つことができるので少し異なります....これは完全に機能します。
<input type="text" name="option[][20]"> inputted value = option 1
<input type="text" name="option[][20]"> inputted value = option 2
<input type="text" name="option[][27]"> inputted value = option 1
foreach ($_POST['option'] as $options){
echo key($options).' ';
foreach ($options as $option){
echo $option.'<br>';
}
完璧に出力します...
20 option 1<br>
20 option 2<br>
27 option 1
より複雑なものが機能し、単純なものが機能しない理由がわかりません。明らかな何かが欠けているのでしょうか。いくつかと比べると、やや異例のコーディング方法があることは承知していますが、それが大爆笑です。どんな助けでも大歓迎です。
編集:要求に応じてVarダンプ
array(22){["pID"] => string(12) "test product" ["pPrice"] => string(0) "" ["pName"] => string(0) "" ["pRRP" ] => string(0) "" ["pPostSize"] => string(0) "" ["pOurPrice"] => string(0) "" ["pEstDelivery"] => string(0) "" [" pWeight "] => string(0)" "[" pEAN "] => string(0)" "[" pOrder "] => string(0)" "[" pStock "] => string(0)" " ["pManufacturer"] => string(0) "" ["pType"] => string(13) "Shower Valves" ["pRange"] => string(0) "" ["cat"] => array( 2){[0] => string(2) "72" [1] => string(2) "23"} ["attribute "] => array(2){[ 0 ] => string(5)" width "[1] => string(6)" height "} ["option "] => array(3){[0] => array(1){[ 11 ] => string(6) " works1 "} [1] => array(1){[ 10 ] => string(6) " works1 "} [2] => array( 1){[10 ] => string(6) " works2 "}} ["pLongdescription"] => string(0) "" ["meta_description"] => string(0) "" ["meta_keyword"] => string(0) "" ["meta_title"] => string(0) "" ["action"] => string(6) "create"}
太字の部分は、私の2番目の例でうまく出てきた部分です。ただし、ご覧のとおり、太字のイタリックは、実際にはフォーム名の値にある20ではなく0を返します。