2014-11-03 2 views
0

Я пытаюсь передать определенные значения в базу данных с помощью AJAX. С текущим скриптом, который у меня есть, PHP проверяет сообщение кнопки отправки и обрабатывает форму. Это стандартная запись в базу данных, но это не проблема. У меня есть элементы в моей форме, которые не являются значениями формы, это текст внутри div, который я пытаюсь передать в базу данных с помощью AJAX, и я не полностью уверен, как это сделать. Мне не нужна помощь с PHP, поэтому я не размещаю его, мне просто нужна помощь в создании AJAX для получения выбранных значений и передачи их в базу данных.Как передать значения в базу данных с помощью AJAX

var Alerts = { 
     apu: [["APU Power Fail", "APU[1]"], ["APU Power Fault", "APU[2]"], ["APU Generator Fail", "APU[3]"], ["APU High Oil Temperature", "APU[4]"], ["APU Hot Start", "APU[5]"], ["APU Loss Overspeed Protection", "APU[6]"], ["APU Starter Engaged", "APU[7]"], ["APU Fire", "APU[8]"], ["APU Fails Bite Check", "APU[9]"], ["APU Door Fails to Open", "APU[10]"], ["APU No Flame", "APU[11]"], ["Left Fire Bottle Discharge", "APU[12]"]], 

     avionics: [["ADS 1 Fail", "AVIONICS[1]"], ["ADS 2 Fail", "AVIONICS[2]"], ["ADS 3 Fail", "AVIONICS[3]"], ["AP 1 Fail", "AVIONICS[4]"], ["AP 2 Fail", "AVIONICS[5]"], ["Autopilots Fail", "AVIONICS[6]"], ["Baroset 1 Fail", "AVIONICS[7]"], ["Baroset 2 Fail", "AVIONICS[8]"], ["Baroset 3 Fail", "AVIONICS[9]"], ["CCD 1 Fail", "AVIONICS[10]"], ["CCD 2 Fail", "AVIONICS[11]"], ["Heading Comparison Monitor", "AVIONICS[12]"], ["Heading and Roll Comparison Monitor", "AVIONICS[13]"], ["Display Controller 1 Fail", "AVIONICS[14]"], ["Display Controller 2 Fail", "AVIONICS[15]"], ["IRS 1 Fail", "AVIONICS[16]"], ["IRS 2 Fail", "AVIONICS[17]"], ["IRS 3 Fail", "AVIONICS[18]"], ["Glideslope Antenna Fail", "AVIONICS[19]"], ["MAU 1A Fail", "AVIONICS[20]"], ["MAU 1B Fail", "AVIONICS[21]"], ["MAU 2A Fail", "AVIONICS[22]"], ["MAU 2B Fail", "AVIONICS[23]"], ["MAU 3A Fail", "AVIONICS[24]"], ["MAU 3B Fail", "AVIONICS[25]"], ["MRC 1 Fail", "AVIONICS[26]"], ["MRC 2 Fail", "AVIONICS[27]"], ["GPS Degrade", "AVIONICS[28]"], ["GPS #1 Fail", "AVIONICS[28]"], ["GPS #2 Fail", "AVIONICS[30]"], ["Display Unit 1 Fail", "AVIONICS[31]"], ["Display Unit 2 Fail", "AVIONICS[32]"], ["Display Unit 3 Fail", "AVIONICS[33]"], ["Display Unit 4 Fail", "AVIONICS[34]"], ["GPS - Unable RNP", "AVIONICS[35]"]] 
    } 
    var description, breaker; 
    for(var key in Alerts){ 
     var system = key.toUpperCase(); 
     $("#systems").append("<div class='systems' id='" +key +"'><div class='select_box'></div><h2>" +system +"</h2></div>"); 
    } 
    $("#systems").on("click", ".systems", function(){ 
     $("#malfunctions").children().remove(); 
     $(this).find(".select_box").each(function(){ 
      $(".selected").removeClass("selected"); 
      $(this).addClass("selected"); 
     }) 
     $.each(Alerts[this.id], function(ind,item){ 
      description = item[0]; 
      breaker = item[1]; 
      $("#malfunctions").append("<div class='systems'><div class='select_box'></div><p data-id='" +description +"'>" +description +"</p></div>"); 
     }) 
    }) 
    $("#malfunctions").on("click", ".systems", function(){ 
     $(this).find(".select_box").each(function(){ 
      if($(this).hasClass("selected")){ 
       $(this).removeClass("selected"); 
      } 
      else{ 
       $(this).addClass("selected"); 
       var text = $(this).closest(".systems").text(); 
      } 
     }) 
    }) 

дивы справа с красной коробкой показа являются выбранные элементы, которые я хочу передать в базу данных. enter image description here

+0

Где находится ваш PHP? Я также не вижу AJAX здесь. – EternalHour

+0

Вот что я спрашиваю, как использовать AJAX для передачи этого скрипта, чтобы поместить данные в базу данных. –

+1

Это объясняет это. http://learn.jquery.com/ajax/. Придумайте что-нибудь, и мы можем помочь вам оттуда с конкретными вопросами. – EternalHour

ответ

0

Вам нужно пройти через ваши элементы и установить его текст в массив, тогда вы можете передавать данные через объект и легко обрабатывать его через PHP POST в виде массива значений:

jQuery(document).ready(function($) { 

    var data_values = []; 

    $("#malfunctions > .selected").each(function(index, el) { 
    data_values[index] = el.innerText; 
    }); 

    $.ajax({ 
    url: '/path/to/file', 
    type: 'POST', 
    dataType: 'json', 
    data: {myData: data_values} 
    }) 
}); 
+0

ИСПРАВЛЕНИЕ: изменено '{myData: data}' правильное значение '{myData: data_values}' –

0

Вы можете сделать так:

... 

var data = ''; 
$('.selected').each(function(){ 
    data += $(this).parent().children('p').attr('data-id') + ','; 
}) 

А потом ...

$.ajax({ 
    type: "POST", 
    url: "some.php", 
    data: { values: data } 
}) 
.done(function(msg) { 

}); 

Это просто способ, а не код для копирования и вставки;)

Смежные вопросы