<option>我的想法是將從不同 html 中選擇的內容存儲在 PHP 數組中<select>。在我使用從 Jquery 函數調用的 php 函數生成的表單中,<ul>包含每個列表元素文本和<select>像這樣:添加列表元素的部分表單:<div> <label for="lineasP" id="asignarBdto" hidden>Productos de este pedido:</label></div><div> <ul id="lineaPedidos" hidden> <!-- Added here --> </ul></div>調用 PHP 函數的 JQuery 函數:$("#pedidos").on("input", function() { $.get("cambio_cliente.php", { idPedido: $("#pedidos").val()}, function (data) { $("#lineaPedidos").empty(); $("#lineaPedidos").append(data); $("#asignarBdto").show(); $("#lineaPedidos").show(); });});PHP函數:// Si llegamos a este script por haber seleccionado un pedidoif(isset($_GET["idPedido"])){ // Abrimos una conexión con la BD y consultamos la lista de productos dado un pedido $conexion = crearConexionBD(); $resultado = listarProductos($conexion, $_GET["idPedido"]); if($resultado != NULL){ // Para cada producto del listado devuelto foreach($resultado as $lineaPedido) { //Listamos los productos de cada pedido echo "<li>" . $lineaPedido["NUM_LINEA_P"] .": cantidad= ". $lineaPedido["CANTIDAD"] .", importe= ". $lineaPedido["IMPORTE"] ." <br><label>Base de dto: </label><select class=\"linPed\" required><option value=\"\" hidden disabled selected>% DTO</option> <option value=\"21\">21%</option> <option value=\"16\">16%</option> <option value=\"8\">8%</option></select></li>"; } } // Cerramos la conexión y borramos de la sesión la variable "idPedido" cerrarConexionBD($conexion); unset($_GET["idPedido"]);}到目前為止,一切都很好。表單顯示這些字段沒有問題:問題從這里開始我需要將每個選擇的內容存儲<option>到我一開始提到的數組中。我不知道<select>將創建多少個,所以我無法為每個創建 ID。我決定為此選擇創建一個類 (linPed),并嘗試了這個 JS 函數:$(".linPed").on("input", function(){ alert("all good");});我首先嘗試做一些“日志記錄”以查看函數是否正確執行,但沒有顯示警報。 盡管如此,即使函數正確執行,我如何在數組中添加所選.linPed值?或者也許有更簡單的方法來做到這一點?
1 回答

烙印99
TA貢獻1829條經驗 獲得超13個贊
我個人會使用changeinstead 而不是input在.on()函數中檢測變化,例如:
$('.linPed').on('change', function() {
alert( this.value );
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class='linPed'>
<option value="1"><li>One</li></option>
<option value="2">Two</option>
</select>
為了獲得所有價值,我會使用.each()如下函數:
var arr = [];
$('.linPed').each(function(){
arr.push($(this).val())
})
如果我是正確的,這會為您提供數組中的所有選定值arr。
編輯:
我處決了echo自己并看著它。問題就出在這里。你的課linPed不是\"linPed"\。
在您的代碼中,\
什么都沒有。
編輯 2:
查看您的代碼段并立即看到它。你在加載js
之前就跑了。html
將您JavaScript
放在代碼的末尾?;蛘咴谀愕拇a周圍放置一個現成的函數,比如
$(function () { //Code .. });
- 1 回答
- 0 關注
- 124 瀏覽
添加回答
舉報
0/150
提交
取消