2015-03-22 2 views
0

У меня есть флажки в течение нескольких дней (понедельник, вторник ...) настроить на HTML-странице и я хочу, чтобы добавить их в свою базу данных. Мне нужно добавить их в DaysWorked, который представляет собой массив строк. Вот мой код до сих порКак вставить массив значений в базу данных с помощью JQuery

var newUser = { 
     'username': $('#addUser fieldset input#inputUserName').val(), 
     'password': $('#addUser fieldset input#inputUserPassword').val(), 
     'email': $('#addUser fieldset input#inputUserEmail').val(), 
     'fname': $('#addUser fieldset input#inputUserFname').val(), 
     'sname': $('#addUser fieldset input#inputUserSname').val(), 
     'JobType': $('#addUser fieldset select#inputUserJobType').val(), 
     'ShiftType': $('#addUser fieldset select#inputUserShiftType').val(), 
     'DaysWorked': $('#addUser fieldset input#inputUserMonday').val(), 
     'DaysWorked': $('#addUser fieldset input#inputUserTuesday').val(), 
     'DaysWorked': $('#addUser fieldset input#inputUserWendsday').val(), 
     'DaysWorked': $('#addUser fieldset input#inputUserThursday').val(), 
     'DaysWorked': $('#addUser fieldset input#inputUserFriday').val(), 
     'DaysWorked': $('#addUser fieldset input#inputUserSaturday').val(), 
     'DaysWorked': $('#addUser fieldset input#inputUserSunday').val(), 
     'HoursPerWeek': $('#addUser fieldset input#inputUserHoursPerWeek').val() 
    } 

Я знаю, что все мои другие код работает, но его здесь, что проблема, я просто не знаю, как добавить дни в массив, который является объектом NEWUSER.

ответ

1

Я думаю, что это будет работать для вас:

var newUser = { 
    'username': $('#addUser fieldset input#inputUserName').val(), 
    'password': $('#addUser fieldset input#inputUserPassword').val(), 
    'email': $('#addUser fieldset input#inputUserEmail').val(), 
    'fname': $('#addUser fieldset input#inputUserFname').val(), 
    'sname': $('#addUser fieldset input#inputUserSname').val(), 
    'JobType': $('#addUser fieldset select#inputUserJobType').val(), 
    'ShiftType': $('#addUser fieldset select#inputUserShiftType').val(), 
    'DaysWorked': [ 
      $('#addUser fieldset input#inputUserMonday').val(), 
      $('#addUser fieldset input#inputUserTuesday').val(), 
      $('#addUser fieldset input#inputUserWendsday').val(), 
      $('#addUser fieldset input#inputUserThursday').val(), 
      $('#addUser fieldset input#inputUserFriday').val(), 
      $('#addUser fieldset input#inputUserSaturday').val(), 
      $('#addUser fieldset input#inputUserSunday').val() 
    ], 
    'HoursPerWeek': $('#addUser fieldset input#inputUserHoursPerWeek').val() 
} 
+0

yup it works altough его добавление всех дней независимо от того, проверено ли оно, плохой может разобраться в нем, – jonathan

0

Решение с кэшированием селектора:

var fieldset = $('#addUser fieldset'); 
var newUser = 
{ 
    'username': fieldset.find('input#inputUserName').val(), 
    'password': fieldset.find('input#inputUserPassword').val(), 
    'email': fieldset.find('input#inputUserEmail').val(), 
    'fname': fieldset.find('input#inputUserFname').val(), 
    'sname': fieldset.find('input#inputUserSname').val(), 
    'JobType': fieldset.find('select#inputUserJobType').val(), 
    'ShiftType': fieldset.find('fieldset select#inputUserShiftType').val(), 
    'DaysWorked': 
    [ 
     fieldset.find('input#inputUserMonday').val(), 
     fieldset.find('input#inputUserTuesday').val(), 
     fieldset.find('input#inputUserWendsday').val(), 
     fieldset.find('input#inputUserThursday').val(), 
     fieldset.find('input#inputUserFriday').val(), 
     fieldset.find('input#inputUserSaturday').val(), 
     fieldset.find('input#inputUserSunday').val() 
    ], 
    'HoursPerWeek': fieldset.find('input#inputUserHoursPerWeek').val() 
}; 

Предполагая, что ваши входы однозначно назвали input# также избыточным и может быть изменено на входной идентификатор, например, #inputUserName, который намного быстрее просматривает элемент.

Этот процесс будет лучше перемещен в объект хэша, так что более OCP. Затем вы можете просто перебрать хеш-ключи объекта и использовать каждое из значений в качестве стратегии для возврата значения для хэша newUser.

0

Почему бы не использовать использовать что-то вроде этого: `

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title> </title> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> 
</head> 
<body> 
    <input type="text" class="input-set" id="x"> 
    <input type="text" class="input-set" id="y"> 
    <input type="text" class="input-set" id="z"> 
    <input type="submit" class="go"> 

    <script> 
     jQuery(document).ready(function($) { 
      $('.go').click(function() { 
       var allInputs = $('.input-set'); 
       daysWorked = [] 
       allInputs.each(function(index, el) { 
        daysWorked.push($(el).val()); 

       }); 
       console.log(daysWorked) 

      }); 
     }); 
    </script> 
</body> 
</html> 

`

Вы получаете все значения от входов и ввод в массив. Затем вы можете отправить его как одну поданную.

var newUser = { 
    'username': $('#addUser fieldset input#inputUserName').val(), 
    'password': $('#addUser fieldset input#inputUserPassword').val(), 
    'email': $('#addUser fieldset input#inputUserEmail').val(), 
    'fname': $('#addUser fieldset input#inputUserFname').val(), 
    'sname': $('#addUser fieldset input#inputUserSname').val(), 
    'JobType': $('#addUser fieldset select#inputUserJobType').val(), 
    'ShiftType': $('#addUser fieldset select#inputUserShiftType').val(), 
    'DaysWorked': daysWorked, 
    'HoursPerWeek': $('#addUser fieldset input#inputUserHoursPerWeek').val() 
} 
Смежные вопросы