Cuando selecciono una cuenta que ha comprado un producto, aparece una opción que muestra de qué producto se trata, pero si seleccionamos una cuenta que ha comprado otro producto, esta opción aparece por segunda vez.
mi código de script
$("select.account").on('change', function() { var accId = $(this).children("option:selected").val(); console.log(accId); $.ajax({ type: 'POST', url: 'netting/order-ajax.php', data: { 'accId': accId }, success: function(data) { if (data != "FALSE") { $('#accform').after(data); } else { $('#productform').hide(); } } }) })mi orden-ajax.php
if (isset($_POST['accId'])) { $sql = $db->qSql("SELECT * FROM sales INNER JOIN account ON sales.accId = account.accId INNER JOIN product ON sales.productId = product.productId WHERE sales.accId = '{$_POST['accId']}'"); if ($sql->rowCount() > 0) { ?> <div id="productform" class="form-group"> <label for="recipient-name" class="col-form-label">Ürün & Hizmet</label> <select class="form-control account" required name="accId"> <option value="">Ürün & Hizmet seçiniz...</option> <?php $sql = $db->read("product", [ "columnsName" => "productId", "columnsSort" => "DESC" ]); while ($row = $sql->fetch(PDO::FETCH_ASSOC)) { ?> <option value="<?= $row['productId'] ?>"><?= $row['productTitle'] ?></option> <?php } ?> </select> </div>.after(data) sigue agregando más contenido al final de su formulario.
En su lugar, cree un div específico o algo en el que desee colocar este contenido y use .html(data) para escribirlo. Esto sobrescribirá el contenido cada vez que lo ejecute, en lugar de agregarlo a lo que se agregó anteriormente.
Referencias: