<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
放在代码的末尾。或者在你的代码周围放置一个现成的函数,比如
$(function () { //Code .. });
- 1 回答
- 0 关注
- 92 浏览
添加回答
举报
0/150
提交
取消