Представленные данные в одну переменную - PullRequest
0 голосов
/ 30 декабря 2011

Я передаю некоторые значения из формы в функцию, чтобы она была готова для вставки базы данных. Функция теоретически работает нормально. Тем не менее, он упускает уникальную ценность, которая впоследствии доставляет мне неприятности. Я пытаюсь создать уникальный идентификатор на основе данных, которые передаются в базу данных. Я хочу сгенерировать ID так:

var mystringId = prodID + '{' + selectId + '}' + selectedOptionValue;

Должен выводить, например: 20 {100} 3 {200} 6 . В моем примере это генерирует выше следующее:

20 {100} 3 * +1013 *

20 {200} 6

из-за each();

$("#submitme").live('click', function() {
//var mystringId = prodID;
    $('select').each(function() {
        var addedOn = new Date();
        var selectName= $(this).attr("name");        
        var selectId= $(this).attr("id");
        var selectedOption = $(this).find('option:selected');
        var selectedOptionValue = selectedOption.val();
        var selectedOptionText = selectedOption.text();

        var mystringId = prodID+'{'+selectId+'}'+selectedOptionValue;

        db.transaction(function(tx) {
        tx.executeSql('INSERT INTO xxxxx mystringId');

        });

    });
    $.mobile.changePage( "#cart", { transition: "slideup"} );
    });

1 Ответ

2 голосов
/ 30 декабря 2011

Из того, что я могу извлечь из вашего вопроса, вы можете просто выполнить каждый цикл перед вашим текущим кодом, чтобы сгенерировать mystringId в формате, который вы хотите использовать внутри своего кода.

Код

$("#submitme").live('click', function() {
    var mystringId = prodID;

    $('select').each(function() {
        var selectId= $(this).attr("id");
        var selectedOption = $(this).find('option:selected');
        var selectedOptionValue = selectedOption.val();

        mystringId += '{' + selectId + '}' + selectedOptionValue;
    });

    $('select').each(function() {
        var addedOn = new Date();
        var selectName= $(this).attr("name");
        var selectId= $(this).attr("id");
        var selectedOption = $(this).find('option:selected');
        var selectedOptionValue = selectedOption.val();
        var selectedOptionText = selectedOption.text();

        db.transaction(function(tx) {
            tx.executeSql('INSERT INTO xxxxx mystringId');
        });
    });

    $.mobile.changePage( "#cart", { transition: "slideup"} );
});

Результаты

Результатами будет mystringId, начинающийся со значения prodID mystringId = 20

Первая итерацияцикл добавит {100}3, что приведет к mystringId = 20{100}3

Вторая итерация цикла добавит {200}6, что приведет к mystringId = 20{100}3{100}6

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...