我如何从php的while循环中使用的html标签中获取单个文本值来显示数据库中的数据?

问题描述 投票:0回答:1
<script type="text/javascript">
$(document).ready(function() {
    $(document).on('change','.uptprice',function(){
        var quantity = $(this).text();
        var vege = $('.itemText').text();
        $.ajax({ type: 'POST',
                 url: "price.php",
                 data: "{'quant':'"+quantity+"', 'vegtle':'"+vege+"'}",
                 success: function(result) {
                    $('.price').text(result);                   
                 },
                 error: function(error) {
                    console.log(error);
                 }
        });
    });
});

这是用于从p标签中获取文本的js代码。

var quantity = $(this).text();
var vege = $('.itemText').text();

但它不是获取单个值,而是循环遍历数据库中的所有值。我检查使用:

console.log(quantity);
console.log(vege)

HTML代码:

    <div class="container">
        <div class="row">
            <div class="col-lg-3" >
                <?php
                if($vegetable<>$row["vegetable"])
                {
                ?>
                <p class="itemText"><?php echo $row["vegetable"]; ?></p>
            </div> 
            <div class="col-lg-3" >
                <p class="price"><?php echo $row["price"]; ?></p>
            </div> 
            <div class="col-lg-3" >
                <select class="uptprice">
                    <?php
                        $sql1 = "SELECT quantity FROM vegetables WHERE vegetable = '".$row["vegetable"]."'";
                        $result1 = $conn->query($sql1);
                        if ($result1->num_rows > 0) {
                            while($row1 = $result1->fetch_assoc()) {
                    ?>
                    <option ><?php echo $row1["quantity"]; } } ?></option>
                </select>
            </div>
            <div class="col-lg-3">
                <button class="add">ADD</button>
            </div>
            <div class="cart"></div>
        </div>
    </div>

这里的下拉列表也由数据库填充。我的目标是,每当用户从下拉列表中选择一个选项时,代码应获取该更改的值并通过ajax请求,以便我可以在php中处理所选的选项以获得所需的结果。但它反过来循环我在html代码中使用的while循环来显示数据库中的数据。

javascript php jquery mysql ajax
1个回答
-1
投票

您好,您必须在Html代码中进行以下更改:

            <select name="select_ejemplo" id="select_ejemplo">
                <?php
                    $sql1 = "SELECT quantity FROM vegetables WHERE vegetable = '".$row["vegetable"]."'";
                    $result1 = $conn->query($sql1);
                    if ($result1->num_rows > 0) {
                        while($row1 = $result1->fetch_assoc()) {
                ?>
                <option id="uptprice" value="<?php echo $row1['quantity'] ; ?>"><?php echo $row1["quantity"]; } } ?></option>
            </select>

price.php的变化:

post方法发送的变量是必需的

$vegle = $_POST["vegtle"];(一点点)

必须改为

$vegle = $_POST["vegetle"];(好)

jquery的变化:

<script type="text/javascript"> $(document).ready(function() { $("select[name=select_ejemplo]").change(function(){ var quantity = $('select[name=select_ejemplo]').val(); var vege = $('.itemText').text(); $.ajax({ type: 'POST', url: "price.php", dataType:"text", data:{ quant: quantity,vegetle: vege}, success: function(result) { $('.price').text(result); }, error: function(error) { console.log(error); } }); }); });

© www.soinside.com 2019 - 2024. All rights reserved.