0

私は、すべてのチェックボックス入力IDを見つけて、要求を処理できる1つの文字列または何かを使用してSQLDBに個別に渡す方法を理解しようと本当に苦労しています。これは私がこれまでに持っているものであり、70以上のチェックボックスを通過する必要があり、これはばかげているだけなので、反復的で冗長であり、PAAAINです。確かに、Javascriptでそれを行う方法はありますか?これは現時点ではすべて機能しており、このすべての情報をDBに送信する別のPHPアップロードスクリプトがあります。正しくは、ショートカットや配列など、70以上のチェックボックスを管理するのに役立つものを知りたいだけです。を選択すると、DBに送信する必要があります。

以下のコードは私が使用しているものであり、機能しますが、ご覧のとおり、これらすべてのIDを処理するのは馬鹿げています.....何かアイデアはありますか?私は永遠に感謝します。

Separate snippet form HTML file:
<tr>
                    <td>
                        <input id="fire_extinguisher" value="fire_extinguisher" type="checkbox">Fire Extinguisher
                    </td>
                    <td>
                        <input id="eye_wash_shower" type="checkbox">Eye Wash/Shower
                    </td>
                    <td>
                        <input id="ladder_scaffold" type="checkbox">Ladder/Scaffold
                    </td>
                    <td>
                        <input id="warning_signs" type="checkbox">Warning Signs
                    </td>
                    <td>
                        <input id="communications" type="checkbox">Communications
                    </td>
                </tr>

JSファイル

//UPLOAD DATA
//Global variables
var jsaform = {
    'location_detail' : "",
    'emergency_number' : "",
    'today' : "",
    'person_in_charge' : "",
    'other_employees' : "",
    'job_description' : "",
    'job_hazards' : "",
    'energy_source_controls' : "",
    'fire_extinguisher' : "No",
    'eye_wash_shower' : "No",
    'ladder_scaffold' : "No",
    'warning_signs' : "No",
    'communications' : "No",
    'machine_guarding' : "No",
    'forklift' : "No",
    'transportation' : "No",
    'welding_cutting' : "No",
    'test_equipment' : "No",
    'barricades' : "No",
    'gfci_cord' : "No",
    'protective_covering' : "No",
    'hand_tools' : "No",
    'ventilation' : "No",
    'msds' : "No",
    'power_tools' : "No",
    'soldering' : "No",
    'equipment_other' : "",
    'natural_fiber' : "No",
    'flame_resistant' : "No",
    'long_sleeves' : "No",
    'kevlar_sleeves' : "No",
    'tyvek' : "No",
    'hard_hat' : "No",
    'hearing_protection' : "No",
    'sun_screen' : "No",
    'safety_glasses' : "No",
    'goggles' : "No",
    'face_shield' : "No",
    'harness' : "No",
    'attachment_point' : "No",
    'personal_flotation_device' : "No",
    'full_face' : "No",
    'half_face' : "No",
    'dust_mask' : "No",
    'safety_shoes' : "No",
    'rubber_boots' : "No",
    'dielectric' : "No",
    'cotton' : "No",
    'leather' : "No",
    'hot_gloves' : "No",
    'protection_other' : ""
}

function uploaddata() { 

//Read all of the data from the page
jsaform.location_detail = document.getElementById("location_detail").value;
jsaform.emergency_number = document.getElementById("emergency_number").value;
jsaform.today = document.getElementById("today").value;
jsaform.person_in_charge = document.getElementById("person_in_charge").value;
jsaform.other_employees = document.getElementById("other_employees").value;
jsaform.job_description = document.getElementById("job_description").value;
jsaform.job_hazards = document.getElementById("job_hazards").value;
jsaform.energy_source_controls = document.getElementById("energy_source_controls").value;
jsaform.equipment_other = document.getElementById("equipment_other").value;
jsaform.protection_other = document.getElementById("protection_other").value;   
//Read Checked items
if (document.getElementById('fire_extinguisher').checked) {
                    jsaform.fire_extinguisher = 'Yes';
            }
if (document.getElementById('eye_wash_shower').checked) {
                    jsaform.eye_wash_shower = 'Yes';
            }
if (document.getElementById('ladder_scaffold').checked) {
                    jsaform.ladder_scaffold = 'Yes';
            }
if (document.getElementById('warning_signs').checked) {
                    jsaform.warning_signs = 'Yes';
            }

//Send to database upload function
upload_jsaform();   
}
    function upload_jsaform() {
        $.ajax({
      type: 'POST',
      url: './php/upload_jsaform.php',
      data: jsaform,
      async: false,
      dataType: 'text',
      success: function() {
        alert("Thank you. Your Job Safety Analysis form has been submitted.");
        },

      error: function(jqXHR, textStatus, errorThrown) {
        alert("Error... " + textStatus + "\n" + errorThrown);
            }
    });
    return false;
};
4

1 に答える 1

0

次のようにループできます。

for (eID in jsaform) {
    if(document.getElementById(eID) && document.getElementById(eID).checked) {
        jsaform[eID] = 'Yes';
    }
}
于 2013-02-02T21:35:19.000 に答える