jsscriptfile cssfile 選択ボックス名 icolorDEVICE からの値の送信に問題があります。これは、上記の選択に基づいて表示される第 3 レベルのブロック要素です。GB チェックボックスは値を渡しますが、何らかの理由で選択はしません。1 番目と 2 番目のレベルの選択ボックスは値を渡します。
function deviceshow(element){
//document.getElementById("nothing").style.display = element =="nothing"?"block":"none";
document.getElementById("nanodevice").style.display = element =="nanodevice"?"block":"none";
document.getElementById("iPodclassicdevice").style.display = element =="iPodclassicdevice"?"block":"none";
document.getElementById("iTouchdevice").style.display = element =="iTouchdevice"?"block":"none";
document.getElementById("iPhonedevice").style.display = element =="iPhonedevice"?"block":"none";
document.getElementById("iPaddevice").style.display = element =="iPaddevice"?"block":"none";
};
このコードはうまく機能しています。フォームは www.moneygrowsonappletrees.com でオンラインで公開されています。var_dump($_POST); を挿入しました。私のphpで、どの値がフォームで送信されているかを確認してください。これが配列に返されるものです。to icolorDEVICE 名に注意してください。フォームでは Black に設定されていました。
array(0) { } array(22) { ["device"]=> string(10) "nanodevice" ["nanoIpod"]=> string(5) "nano1" ["GB"]=> string(1) "4" ["icolorDEVICE"]=> string(0) "" ["USBcable"]=> string(3) "YES" ["iPodclassic"]=> string(0) "" ["itouch"]=> string(0) "" ["iphoneversion"]=> string(8) "iphone4S" ["carrierDEVICE"]=> string(0) "" ["WritenDoc"]=> string(3) "YES" ["iPad"]=> string(0) "" ["first_name"]=> string(7) "Anthony" ["lastname"]=> string(5) "Dolan" ["email"]=> string(17) "anthony@ymail.com" ["phone"]=> string(12) "978-985-6598" ["Address1"]=> string(10) "89 Sorento" ["Address2"]=> string(4) "time" ["City"]=> string(9) "worcester" ["State"]=> string(2) "ME" ["Zip"]=> string(5) "01602" ["DeviceCondition"]=> string(5) "Hello" ["Submit"]=> string(6) "Submit" }
ナノカラーは黒にしました。何も渡されませんでした。セレクトボックスに固有の名前を付けようとしましたが、同じ結果が得られました。
<legend>Please select your device?</legend>
<label for="devicetype" class="textInput">Device:</label>
<select onchange="deviceshow(this.value);" name="device">
<option value="" selected="selected"></option>
<option value="nanodevice">iPod nano</option>
<option value="iPodclassicdevice">iPod classic</option>
<option value="iTouchdevice">iPod touch</option>
<option value="iPhonedevice">iPhone</option>
<option value="iPaddevice">iPad</option>
</select>
これは、Nano のバージョンを選択できる 2 番目のレベルです。次に、そのバージョンに付属していたすべてのオプションを取得します。空間、ヘッドフォン、色など。チェック ボックスはすべての値を渡します。選択ボックスは、このレベルでは値を渡しません。面白いことに、このレベルでもコードをコメントアウトすることはできません。css、クラス属性の階層に関係しているように感じます。PHP issetで送信する前にフォームをチェックするかどうか疑問に思っていましたが、それを行う方法と選択ボックスから値を渡す方法がわかりません。
<label for="nano" class="textInput">iPod nano:</label>
<select onchange="nanoshow(this.value);" name="nanoIpod">
<option value=""></option>
<option value="nano1">iPod nano</option>
<option value="nano2">iPod nano 2nd generation</option>
<option value="nano3">iPod nano 3rd generation</option>
<option value="nano4">iPod nano 4th generation</option>
<option value="nano5">iPod nano 5th generation</option>
<option value="nano6">iPod nano 6th generation</option>
</select>
これは、フォームで選択ボックスの値を許可または渡すことができない 3 番目のレベルです。チェックボックスが送信されます。助けてください。この脳停止の問題を調査していただきありがとうございます。
<!--select nano1-->
<div id="nano1" style="display:none;">
<p>
<input name="GB" type="checkbox" id="GB1" value="1" />
<label for="GB1" class="check">1GB</label>
<input name="GB" type="checkbox" id="GB2" value="2" />
<label for="GB2" class="check">2GB</label>
<input name="GB" type="checkbox" id="GB4" value="4" />
<label for="GB4" class="check">4GB</label>
<p>
<label for="DeviceColor" class="textInput">Color:</label>
<select name="icolorDEVICE">
<option value=""></option>
<option value="Black">Black</option>
<option value="White">White</option>
</select>
<p>
<input name="Earphones" type="checkbox" id="Earphones" value="YES" />
<label for="Earphones" class="check">Earphones</label>
<input name="USBcable" type="checkbox" id="USBcable" value="YES" />
<label for="USBcable" class="check">USB cable</label>