为了账号安全,请及时绑定邮箱和手机立即绑定

有没有办法在 PHP 数组中存储从 HTML <select> 中选择的 <option>?

有没有办法在 PHP 数组中存储从 HTML <select> 中选择的 <option>?

PHP
MM们 2023-04-21 17:20:58
<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"\。

//img1.sycdn.imooc.com//644255bd0001540e04300100.jpg

在您的代码中,\什么都没有。

编辑 2:

查看您的代码段并立即看到它。你在加载js之前就跑了。html将您JavaScript放在代码的末尾。或者在你的代码周围放置一个现成的函数,比如

$(function () {
  //Code ..
  });


查看完整回答
反对 回复 2023-04-21
  • 1 回答
  • 0 关注
  • 92 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信