0

私は車の在庫のウェブサイトを持っています。私たちは皆、車が大きく異なる可能性があることを知っています。そこで、最も一般的な属性を含むテーブルを作成しました。チェックボックス、ラジオ、テキストが含まれています。それぞれをチェックする必要があります。入力には 3 つのタイプがあるため、それぞれの if ステートメントが適切かどうかはわかりません。それらを同じ for ループでグループ化しますが、これを行う方法がわかりません。または、より良い方法がある場合は?

<h3>Add a vehicle</h3>
<form action="" method="post" enctype="multipart/form-data" >
    <b>VIN: <input type="text" name="vin">
    <button class="btn-success"><a style="color: white;" href="#">Decode Vin</a></button><br />
    Year: <?php include 'admin/tool/caryears.php'; ?>
    Make: <?php include 'admin/tool/carmakes.php'; ?>
    Model: <input type="text" name="model"><br />
    Mileage: <input type="text" name="mileage"><br />
    Price: <input type="text" name="price"><br />
    VIN: <input type="text" name="vin"><br />
    Attribute: <input type="text" name="att1">
    Attribute: <input type="text" name="att2"><br />
    Attribute: <input type="text" name="att3">
    Attribute: <input type="text" name="att4"><br />    
<table border="1" bordercolor="FFCC00" style="background-color:FFFFCC" width="100%" cellpadding="3" cellspacing="3">

    <center>
        <b>Common Attributes</b>

    <tr>
    <th>Body style</th>
        <td>SUV         <input value="suv" name="bodystyle" type="radio"></td>
        <td>Sedan       <input value="sedan" name="bodystyle" type="radio"></td>
        <td>Truck       <input value="truck" name="bodystyle" type="radio"></td>
        <td>Mini Van    <input value="minivan" name="bodystyle" type="radio"></td>
        <td>Convertible <input value="convertible" name="bodystyle" type="radio"></td>
        <td>Coupe       <input value="coupe" name="bodystyle" type="radio"></td>
        </tr><tr><td></td>
        <td>Hatchback   <input value="hatchback" name="bodystyle" type="radio"></td>
        <td>Hybrid      <input value="hybrid" name="bodystyle" type="radio"></td>
        <td>Diesel      <input value="diesel" name="bodystyle" type="radio"></td>
        <td>Crossover   <input value="crossover" name="bodystyle" type="radio"></td>
    </tr>
    <tr>
    <th>Engine and Performance</th>
        <td>Engine Size <input name="enginesize" type="text" value=" L" class="input-small"></td>
        <td>Cylinders   <select name="cyl" class="input-small"><option>Select</option><?php $i=2; while($i<13){echo '<option value="cyl'.$i.'">'.$i.' Cylinders</option>'; $i++;}?></select></td>
        <td>Horse Power <input name="hp" class="input-small" type="text"></td>
        <td>Diesel      <input value="diesel" name="fuel" type="radio"></td>
        <td>Gasoline    <input value="gasoline" name="fuel" type="radio"></td>
    </tr>
    <tr>
    <tr>
    <th>Transmission</th>
        <td>Automatic       <input value="automatic" name="transmission" type="radio"></td>
        <td>Manual          <input value="manual" name="transmission" type="radio"></td>
        <td>4 Speed         <input value="fourspeed" name="shifts" type="radio"></td>
        <td>5 Speed         <input value="fivespeed" name="shifts" type="radio"></td>
        <td>6 Speed         <input value="sixspeed" name="shifts" type="radio"></td>
        <td>OverDrive       <input name="od" type="checkbox"></td>

    </tr>
    <tr>
    <th>Sound System</th>
        <td>CD Player       <input value="cd" name="sound" type="radio"></td>
        <td>MP3 Player      <input value="mp3" name="sound" type="radio"></td>
        <td>DVD Player      <input value="dvd" name="sound" type="radio"></td>
        <td>GPS Nav         <input name="gps" type="checkbox"></td>
        <td>Brand:          <input name="sound_system" type="text" class="input-small"></td>
        <td>Satellite Radio <input name="sradio" type="checkbox"></td>
    </tr>
    <tr>
    <th>Instrumentation</th>
        <td>Tachometer          <input name="tachometer" type="checkbox"></td>
        <td>Clock   <input name="clock" type="checkbox"></td>
        <td>Trip Computer   <input name="trip" type="checkbox"></td>
        <td>Exterior-Weather    <input name="eweather" type="checkbox"></td>
        <td>All-Digital <input name="digitalboard" type="checkbox"></td>

    </tr>
    <tr>
    <th>DriveTrain</th>
        <td>Rear-wheel-drive    <input value="rwd" name="drive" type="radio"></td>
        <td>Front-wheel-drive   <input value="fwd" name="drive" type="radio"></td>
        <td>All-wheel-drive     <input value="awd" name="drive" type="radio"></td>
        <td>4x4                 <input name="fxf" type="checkbox"></td>
        <td>Cruise Control      <input name="cruisecontrol" type="checkbox"></td>
        <td>Tilt Steering       <input name="tiltsteering" type="checkbox"></td>
    </tr>
    <tr>
    <th>Inside and outside</th>
        <td>A/C             <input name="ac" type="checkbox"></td>
        <td>Removable Top   <input name="removabletop" type="checkbox"></td>
        <td>Keyless         <input name="keyless" type="checkbox"></td>
        <td>AirBags         <input name="airbags" type="checkbox"></td>
        <td>Alloy Wheels    <input name="alloy" type="checkbox"></td>
        <td>Trunk anti-trap <input name="trunkantitrap" type="checkbox"></td>
    </tr>
    <tr>
    <th>Electric Powered Options</th>
        <td>Power Windows       <input name="ewindows" type="checkbox"></td>
        <td>Power Mirrors       <input name="emirrors" type="checkbox"></td>
        <td>Power Driver Seat   <input name="eseat" type="checkbox"></td>
        <td>Power Locks         <input name="elocks" type="checkbox"></td>
        <td>Vehicle Anti-theft  <input name="antitheft" type="checkbox"></td>
        <td>LED headlights      <input name="ledheadlights" type="checkbox"></td>
    </tr>
</table>
</form>

したがって、空でないか、チェックまたは選択されていない場合は、それぞれをチェックしてから配列を作成する必要があります。

私は個人的に何か間違ったことをしていると思います、これについてもっと良い方法はありますか?

私は基本的に、属性のデータベースに入力するためにこの情報が必要です

4

1 に答える 1

1

入力の値を取得しようとしている場合、checkboxこれは PHP で行うことができる方法です。チェックボックスの入力に同じ名前を付ける必要がありますが、最後に角括弧[]を追加します。フォームが送信され、同じ名前のチェックボックス フィールドの値をチェックすると、チェックされたオプションを含む配列が与えられます。

私の簡単な例:

HTML

<form method="post">

    <label for="power-windows">Power Windows</label>
    <input type="checkbox" id="power-windows" name="e-power-opts[]" value="power windows" />
    <br>

    <label for="power-doors">Power Doors</label>
    <input type="checkbox" id="power-doors" name="e-power-opts[]" value="power doors" />
    <br>

    <label for="power-locks">Power Locks</label>
    <input type="checkbox" id="power-locks" name="e-power-opts[]" value="power locks" />

    <input type="submit" name="submit" value="submit">

</form>

上記の例で、ユーザーが と を選択Power WindowsしたとしPower Doorsます。の内容を確認する$_POST['e-power-opts']と、次のような配列が返されます。

Array
(
    [0] => power windows
    [1] => power doors
)

オプションが選択されていない場合は、$_POST['e-power-opts'] = null.

ループすることはできますが、または入力$_POSTに何も選択されていない場合、 に対応する「空の」値はありません。たとえば、フォームにとがあり、ユーザーはチェックボックスに何も選択していません。コンテンツは次のようになります。checkboxradio$_POSTmakemodelelectronic power optionselectronic power options$_POST

Array
(
    [make] => pontiac,
    [model] => g6,
    [submit] => submit
)

のキーと値のペアがないことに注意してくださいelectronic power options。データベースを挿入する前にデフォルト値を設定する必要がある場合にのみ、これを指摘します。

最後に、ほとんどの場合、各フィールドを確認する必要があります。それらが空かどうかを確認するだけでなく、検証/サニタイズ目的でも使用できます。

また、PHP フィルター関数を確認することもできます: http://www.php.net/manual/en/ref.filter.php

于 2013-08-07T05:16:05.590 に答える