javascript - 使用 Ajax 创建 session 并回显结果

标签 javascript php jquery html ajax

我正在尽力让它发挥作用。但 AJAX 对我来说还很陌生。所以坚持住...

好的,我在这里问了几个关于解决这个问题的问题,我必须解决这个问题。我(我们)已经走了很长的路。但现在下一个问题就在这里。

我正在尝试使用 AJAX 在 div 中回显 session 。 AJAX 代码正在运行,我可以将纯文本回显到我想要的 div。 我遇到的唯一问题是它不显示项目的标题。

我有一些项目(本例中假设有 3 个),我希望自定义将这些项目保存在 session 中。所以当客户点击保存时。 ajax div 显示标题。如果自定义单击第三个项目,它将显示第一个和第三个项目,依此类推...

我的 HTML:

<button type="submit" class="btn btn-primary text-right" data-toggle="modal" data-target=".post-<?php the_ID(); ?>" data-attribute="<?php the_title(); ?>" data-whatever="<?php the_title(); ?>">Sla deze boot op <span class="glyphicon glyphicon-heart" aria-hidden="true"></span></button>

我的 AJAX 代码:

$(".ajaxform").submit(function(event){
event.preventDefault();
  $.ajax({
      type: "POST",
      url: "example.com/reload.php",
      success: function(data) {
        $(".txtHint").html(data);    
       },
     error: function() {
        alert('Not OKay');
        }
    });
      return false;
 });

我的 PHP reload.php:

<h4>Saved Items</h4>
<p>Blaat...</p>
<?php echo "Product Name = ". $_SESSION['item'];?>

我在这里看到了这段代码:我没有使用这段代码。只是想知道我是否可以将它用于我的代码,然后如何使用?

将 session.php 更改为:

<?php
   session_start();

   // store session data
   $_SESSION['productName'] = $_POST['productName'];

   //retrieve session data
   echo "Product Name = ". $_SESSION['productName'];
?>

在您的 HTML 代码中:

function addCart(){
    var brandName = $('iframe').contents().find('.section01a h2').text();

    $.post("sessions.php", {"name": brandName}, function(results) {
        $('#SOME-ELEMENT').html(results);
    });
}

我如何获得我的 title();:

<?php
    // Set session variables
    $_SESSION["item"][] = get_the_title();
?>

这是我可以使用的东西吗?有人可以帮我编写代码吗?

提前致谢!

最佳答案

我不太确定你到底想要完成什么,但这里有一个快速而肮脏的示例,使用产品名称发出 HTTP 请求 (POST),将其存储在 PHP session 中,然后输出 session 中的所有产品名称:

HTML

<p>Product A <button class="add-product" data-product="Product A">Add Product</button></p>
<p>Product B <button class="add-product" data-product="Product B">Add Product</button></p>
<p>Product C <button class="add-product" data-product="Product C">Add Product</button></p>

<div id="response">
</div>

JavaScript

$('.add-product').click(function() {
    var productName = $(this).data('product');

    $.post('addProduct.php', {productName: productName}, function(data) {
        $('#response').html(data);
    })
});

PHP(addProduct.php)

<?php

session_start();

if (!array_key_exists('products', $_SESSION) || !is_array($_SESSION['products'])) {
    $_SESSION['products'] = [];
}

$productName = array_key_exists('productName', $_POST) ? (string) $_POST['productName'] : '';

if ($productName) {
    $_SESSION['products'][] = $productName;
}
?>
<h4>Your added products:</h4>
<ul>
    <?php foreach ($_SESSION['products'] as $product): ?>
    <li><?php echo htmlspecialchars($product); ?></li>
    <?php endforeach;?>
</ul>

关于javascript - 使用 Ajax 创建 session 并回显结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38482079/

相关文章:

javascript - 查询选择器类在数字验证中不起作用

javascript - 在浏览器中渲染 SVG 图像 : copy element names to clipboard

php - Guzzle 6 - 获取请求总时间

javascript - 如何使用 jQuery 添加新的 HTML 节点

javascript - Jquery 中的 iframe 未加载页面

javascript - 使用 jQuery 脚本将 CSS 样式应用到 angularjs 表达式

javascript - 网格系统不显示文档中的颜色

javascript - JS 高度 100%

php - PHP 的日志流过滤器?

php - 如何仅允许白名单网站嵌入 iframe?