繁体   English   中英

如何提交表单如何在不重新加载表单提交页面的情况下获得 session 计数

[英]how to submit form how to get session count without reloading page on form submission

我创建了一个带有隐藏输入 forms 的表单,该表单将值提交给 PHP 脚本,并通过使用 AJAX 重新加载页面将每个值存储在会话数组中。它返回 HTML 成功警报消息到<p id ="msg"></p> 我需要有关如何在成功时将$count发送到<p id="count"></p>并将成功警报消息发送到<p id ="msg"></p>的帮助success:在 AJAX 中。还有我希望成功警报在显示 3 秒后消失。 下面是我的代码:

my_add_cart.php

<?php 
 session_start();

     $_SESSION['title'][]=$_POST['title'];
     $_SESSION['price'][]=$_POST['price'];
     $_SESSION['img_src'][]=$_POST['img_src'];
     
        $count = count($_SESSION["title"]);
echo $count;
     echo '<div class="alert">
  <span class="closebtn" onclick="this.parentElement.style.display=\'none\';">&times;</span> 
  <center>Product added successfully to cart.</center>
</div>';
exit();
?>

上面是 my_add_cart.php,下面是我的 HTML 和 javascript:


<script type="text/javascript">

function clickButton(){
    var title=document.getElementById('title').value;
    var price=document.getElementById('price').value;
    var img_src=document.getElementById('img_src').value;
   
    $.ajax({
        type:"post",
        url:"my_add_cart.php",
        data: 
        {  
           'title' :title,
           'price' :price,
           'img_src' :img_src
        },
        cache:false,
  
        success: function (html) 
        {
           $('#msg').html(html);
           
        
        }
        
    });
    return false;
 }
</script>

<html>
   <p id="msg"></p>
   <p id="count"></p>
       
<form onsubmit="clickButton()">

<input type="hidden" value="<? echo $title ?>" name = "title" id="title" >

<input type="hidden" value="<? echo number_format($price); ?>" name = "price" id="price" >

<input type="hidden" value="<? echo "https://mikeandcathy.com.ng/admin/UploadFolder/".$row_product_img[0]; ?>" name = "img_src" id="img_src">
                                        
<button type="submit" id="add_to_cart" name="add_to_cart" class="btn btn-outline-secondary btn-sm" value="Add to cart" onclick="return clickButton();">Add Cart</button>
  
</form>

</html>

我建议将您的服务器代码变成 json api

解决方案

my_add_cart.php更改为此

<?php 
     session_start();
    $_SESSION['title'][]=$_POST['title'];
    $_SESSION['price'][]=$_POST['price'];
    $_SESSION['img_src'][]=$_POST['img_src']; 
    $count = count($_SESSION["title"]);
    header('Content-Type: application/json; charset=utf-8');
    echo json_encode(
        [
            'count' => $count,
            'message' => '<div class="alert"><span class="closebtn" onclick="this.parentElement.style.display=\'none\';">&times;</span> <center>Product added successfully to cart.</center></div>';
        ]
    );
    exit();
?>

将您的前端代码更改为此


<script type="text/javascript">

function clickButton(){
    var title=document.getElementById('title').value;
    var price=document.getElementById('price').value;
    var img_src=document.getElementById('img_src').value;
   
    $.ajax({
        type:"post",
        url:"my_add_cart.php",
        data: 
        {  
           'title' :title,
           'price' :price,
           'img_src' :img_src
        },
        cache:false,
  
        success: function (data) 
        {
           $('#msg').html(data['message']);
           $('#count').html(data['count']);        
        }
        
    });
    return false;
 }
</script>

<html>
   <p id="msg"></p>
   <p id="count"></p>
       
<form onsubmit="clickButton()">

<input type="hidden" value="<? echo $title ?>" name = "title" id="title" >

<input type="hidden" value="<? echo number_format($price); ?>" name = "price" id="price" >

<input type="hidden" value="<? echo "https://mikeandcathy.com.ng/admin/UploadFolder/".$row_product_img[0]; ?>" name = "img_src" id="img_src">
                                        
<button type="submit" id="add_to_cart" name="add_to_cart" class="btn btn-outline-secondary btn-sm" value="Add to cart" onclick="return clickButton();">Add Cart</button>
  
</form>

</html>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM