Javascript 如何将php代码封装在一个echo中

Javascript 如何将php代码封装在一个echo中,javascript,php,sql,ajax,string,Javascript,Php,Sql,Ajax,String,我有php代码和一些html,我希望我的所有html都用echo(“”)包装,以用于ajax响应。 请帮忙 请帮忙 这是我的密码 <?php if (isset($_POST['getcart'])){ $cart_item_query="SELECT * FROM cart"; $cart_item_run = mysqli_query($conn,$cart_item_query); if (mysqli_num_rows($cart_item_run

我有php代码和一些html,我希望我的所有html都用echo(“”)包装,以用于ajax响应。 请帮忙

请帮忙
这是我的密码

    <?php
if (isset($_POST['getcart'])){

    $cart_item_query="SELECT * FROM cart";
    $cart_item_run = mysqli_query($conn,$cart_item_query);
    if (mysqli_num_rows($cart_item_run)>0){
        $grand_total=0;
        while($cart_row=mysqli_fetch_array($cart_item_run)){
            $pro_id = $cart_row['product_id'];
            $pro_qty = $cart_row['qty'];

                       $product_query="SELECT * FROM products WHERE product_id = '$pro_id'";
            $product_run = mysqli_query($conn, $product_query);
            $product_row = mysqli_fetch_array($product_run);
            $pro_name = $product_row['product_name'];
            $pro_image = $product_row['product_image'];
            $pro_sell_price = $product_row['sell_price'];
            $total = $pro_sell_price*$pro_qty;
            $grand_total =$grand_total+ $total;


            ?>

            <div class='row'>

                <div class="col-md-3 col-xs-3"><img src="img/<?php echo $pro_image; ?>" alt="" width="50px"></div>
                <div class="col-md-3 col-xs-3"><p><?php echo $pro_name; ?></p><a href=""><p><i class="fa fa-trash" aria-hidden="true"></i> Remove</p></a></div>
                <div class="col-md-2 col-xs-2">
                    <select class="change_qty" size="1" style="width:50px;">
                        <?
                            for ($i = 1; $i <= 9; $i++) {
                                $selected = $pro_qty == $i? 'selected' : '';
                                echo "<option class='qty' data-pro='{$pro_id}' value='{$i}' {$selected}>{$i}</option>";
                            }
                        ?>
                    </select>
                </div>

                <div class="col-md-2 col-xs-2"><input data-pro="<?php echo $pro_id; ?>" id="price-<?php echo $pro_id; ?>" type="text" value="<?php echo $pro_sell_price; ?>" disabled class="form-control dis-input price"></div>
                <div class="col-md-2 col-xs-2"><input id="total-<?php echo $pro_id; ?>" data-pro="<?php echo $pro_id; ?>" type="text" value="<?php echo $total; ?>" disabled class="form-control dis-input total"></div>

            </div>

            <hr>

            <?

        }
    }
}
?>

“alt=”“width=“50px”>


只需将输出保存在php变量中,并在完成后回显即可。如果您只想在某些DOM中将其输出为html,则无需执行此操作(如上述其他操作)。 `
$cart\u item\u query=“从购物车中选择*”;
$cart\u item\u run=mysqli\u query($conn,$cart\u item\u query);
如果(mysqli\u num\u行($cart\u item\u run)>0){
$grand_总计=0;
而($cart\u row=mysqli\u fetch\u数组($cart\u item\u run)){
$pro_id=$cart_行['product_id'];
$pro_数量=$cart_行['qty'];
$product\U query=“从产品中选择*,其中product\U id='$pro\U id';
$product\U run=mysqli\u查询($conn$product\u查询);
$product\U row=mysqli\u fetch\u数组($product\u run);
$pro_name=$product_行['product_name'];
$pro_image=$product_行['product_image'];
$pro_sell_price=$product_行['sell_price'];
$total=$pro\u售价*$pro\u数量;
$grand_total=$grand_total+$total;
$return\u值=”
“$pro_名称。”

"; 对于($i=1;$i) $return_值=”
”; } } echo$返回值;
}
?>`

为什么?离开php并编写html与从php中回显html是一样的。无需回显响应,只需使用ajax自身设置innerHTML。实际上,这是一个正在运行的页面。我需要在购物车页面上显示它,所以在ajax中,我将收到响应,以便我可以将响应设置为购物车页面中某个div的innerHTML。现在它正在显示它在操作页面上,这解决了我的a问题,但现在又出现了一个问题。在这段代码中,当我尝试给出一个事件处理程序(.change)时,你可以看到js中selectbox…的类名发生了变化它无法识别此类。问题出在哪里?在上面的示例中,它回显$return\u value一个变量……问题是我可以回显多个变量吗?如果可以,那么我如何在ajax响应中单独接收这些变量,并将其显示在不同的div中。@kohali这是因为您可能直接在页面加载时分配侦听器。ass在('change','change_qty',function(){your code})
上,你可以像这样使用json编码
$arr_with_all_return_values[]=array('msg'=>'your message');$arr_with_all_return_values[]=array('something_to_return'=>'你还需要返回什么?);$arr_with_all返回值[]=array('return\u value'=>$return\u value);echo json\u encode('arr\u with\u all\u return\u value);
$cart_item_query="SELECT * FROM cart";
$cart_item_run = mysqli_query($conn,$cart_item_query);
if (mysqli_num_rows($cart_item_run)>0){
    $grand_total=0;
    while($cart_row=mysqli_fetch_array($cart_item_run)){
        $pro_id = $cart_row['product_id'];
        $pro_qty = $cart_row['qty'];

                   $product_query="SELECT * FROM products WHERE product_id = '$pro_id'";
        $product_run = mysqli_query($conn, $product_query);
        $product_row = mysqli_fetch_array($product_run);
        $pro_name = $product_row['product_name'];
        $pro_image = $product_row['product_image'];
        $pro_sell_price = $product_row['sell_price'];
        $total = $pro_sell_price*$pro_qty;
        $grand_total =$grand_total+ $total;




        $return_value = "<div class=\"row\">

            <div class=\"col-md-3 col-xs-3\"><img src=\"img/".$pro_image."\" alt=\"\" width=\"50px\"></div>
            <div class=\"col-md-3 col-xs-3\"><p>".$pro_name."</p><a href=\"\"><p><i class=\"fa fa-trash\" aria-hidden=\"true\"></i> Remove</p></a></div>
            <div class=\"col-md-2 col-xs-2\">
                <select class=\"change_qty\" size=\"1\" style=\"width:50px;\">";

                        for ($i = 1; $i <= 9; $i++) {
                            $selected = $pro_qty == $i? 'selected' : '';
                            $return_value .= "<option class=\"qty\" data-pro=\"".$pro_id."\" value=\"".$i."\" ".$selected.">".$i."</option>";
                        }
                    ?>
                $return_value .= "</select>
            </div>

            <div class=\"col-md-2 col-xs-2\"><input data-pro=\"".$pro_id."\" id=\"price-".$pro_id."\" type=\"text\" value=\"".$pro_sell_price."\" disabled class=\"form-control dis-input price\"></div>
            <div class=\"col-md-2 col-xs-2\"><input id=\"total-".$pro_id."\" data-pro=\"".$pro_id."\" type=\"text\" value=\"".$total."\" disabled class=\"form-control dis-input total\"></div>

        </div>

        <hr>";



    }
}
echo $return_value;