2012-04-12 11 views
0

Ich muss zwei Werte, von einer jquery Auflistung Funktion, zu einer anderen Funktion. Der erste Wert ist eine Zeile aus einer Tabelle, der zweite ein wählen Sie die Option Wert ist, hier ist mein Code:Übergabe Wert von jquery Funktion zu einem anderen

function ListDBValues() { 
if (!window.openDatabase) { 
    alert('Databases are not supported in this browser.'); 
    return; 
} 
$('#lbUsers').html(''); 
db.transaction(function(transaction) { 
    transaction.executeSql('SELECT * FROM productos;', [], 
    function(transaction, result) { 

     if (result != null && result.rows != null) { 
     for (var i = 0; i < result.rows.length; i++) { 
      var row = result.rows.item(i); 
      $('#lbUsers').append('<div id="producto"><img id="imgprod" width="100" src="images/' + row.foto +'">' + row.titulo + '<br>$' + row.precio + ' MXP<br>\ 
      <input class="cuadro" type="button" id="cb.row" name="item" value="ORDENAR" onclick=AddValueToOrders('+ row.item + ',' + cantidad.val() + ');>\ 
      <div data-role="fieldcontain">\ 
      <label for="select-choice-a" class="select">Cantidad:</label>\ 
      <select name="cantidad" id="cantidad" data-native-menu="false">\ 
      <option value="1">1</option>\ 
      <option value="2">2</option>\ 
      <option value="3">3</option>\ 
      <option value="4">4</option>\ 
      </select></div></div><br>'); 

     } 
     } 
    },errorHandler); 
},errorHandler,nullHandler); 
return; 
} 

Fragen oder Anregungen? Vielen Dank im Voraus

+0

welche Werte ? wohin ? Wenn der Wert in einer Callback-Funktion definiert ist, müssen Sie eine Funktion außerhalb des Callbacks definieren und sie im Callback aufrufen, um den Wert zu erhalten, der als Ereignisschleife bezeichnet wird. – mpm

+0

Hi: Ich versuche den row.item-Wert zu übergeben (alleine wird ok übergeben), muss aber auch den Wert von "cantidad" übergeben (Option auswählen), und gehe zu AddValueToOrders ('+ row.item +', '+ cantitid.val() +'). Aber ich weiß nicht, wie man den Wert von Cantidad senden kann, danke – CaribeSoft

+0

wo ist candidad definiert? – mpm

Antwort

0

ich diese Annahme ist die Funktion, die Sie verweisen:

AddValueToOrders('+ row.item + ',' + cantidad.val() + '); 

Ihre append Anweisung hat einige Probleme, die gelöst werden müssen. Jedes ausgewählte Steuerelement hat denselben Namen und dieselbe ID, sodass es schwierig ist, den ausgewählten Wert herauszufinden. Wenn Sie einen Index-basierten ID für jedes der ausgewählten Elemente und Referenz erstellen, die in Ihrer Funktion aufrufen, dann werden Sie den gewählten Wert erhalten:

 var cantidad = "cantidad" + i; 
     $('#lbUsers').append('<div id="producto"><img id="imgprod" width="100" src="images/' + row.foto +'">' + row.titulo + '<br>$' + row.precio + ' MXP<br>' + 
     '<input class="cuadro" type="button" id="cb.row" name="item" value="ORDENAR" onclick=AddValueToOrders('+ row.item + ', $("#' + cantidad + '").val());>' + 
     '<div data-role="fieldcontain">' + 
     '<label for="select-choice-a" class="select">Cantidad:</label>' + 
     '<select name="' + cantidad + '" id="' + cantidad + '" data-native-menu="false">' + 
     '<option value="1">1</option>' + 
     '<option value="2">2</option>' + 
     '<option value="3">3</option>' + 
     '<option value="4">4</option>' + 
     '</select></div></div><br>'); 

Die neue Onclick-Funktion:

AddValueToOrders('+ row.item + ', $("#' + cantidad + '").val()); 
+0

Hallo Sam: Danke für deinen Kommentar, es klingt logisch für mich. Ich habe es versucht, aber ich erhalte eine "Uncaught SyntaxError: Unexpected Token", ich bin bereits die Funktion reviwed, aber ich nicht den Fehler gefunden, hier ist wieder: – CaribeSoft

+0

Ich änderte die Umbruchart Ihres Beispiels, so könnte es sein dass dein Editor es nicht auf die gleiche Weise erkennt. Sie haben am Ende jeder Zeile Backslashes verwendet, und ich habe die Konkatenation geändert. Suchen Sie nach Syntaxfehlern in der jQuery-Auswahl für das Auswahlsteuerelement in Ihrer onclick-Funktion. --- Achten Sie auch darauf, eine Antwort auf Ihre Fragen zu wählen, indem Sie die beste Wahl auswählen - Feedback ist großartig. –

+0

Können Sie Ihren Code unter http://jsfiddle.net/ oder https://gist.github.com/ veröffentlichen? –

Verwandte Themen