【问题标题】:Passing javascript variable to php without refreshing the page将javascript变量传递给php而不刷新页面
【发布时间】:2014-01-16 03:17:12
【问题描述】:

我有一个 5x5 网格的 div 框(其中 25 个),当我将一个项目放入其中时,我正在使用 jQuery UI 进行注册。它将收到它被放入的盒子的标题和项目的名称,这部分有效。

我想在不刷新页面的情况下将标题和名称传递给 PHP(因为那样项目将重置)。我得到一个“成功!”但它似乎没有传递数据。

index.php

<script>
    $(function() {
        $( "li img" ).draggable({ 
            snap: ".grid", 
            start: function (event, ui ) {
                item = $(this).attr('title');
            }
        });
        $( "li .grid" ).droppable({
            drop: function( event, ui ) {
                box = $(this).attr('title');
                $.ajax({
                    type: "POST",
                    url: 'index.php',
                    data: { box : 'box' },
                    success: function(data){
                        alert("success!");
                    }
                });

            }
        });
    });        
</script>

sessions.php

<?php
   session_start();
if(isset($_POST['box']))
{
   // store session data
   $_SESSION['box'] = $_POST['box'];
}
   //retrieve session data
   echo $_SESSION[box];
?>

如何在不刷新页面的情况下将标题和名称传递给 PHP?

【问题讨论】:

  • @Dagon 你太离谱了。
  • 谢谢,你刚刚给了我一个想法,我已经坚持了 3 个小时。

标签: javascript php jquery


【解决方案1】:

尝试从这里更改url 和您的data

url: 'index.php',
data: { box : 'box' }

到这里:

url: 'sessions.php',
data: { box : box }

【讨论】:

  • 我现在感觉自己像个白痴……哦,谢谢。当我在它的时候,我如何让它添加而不是覆盖 session[box] 中的数据?
  • 很高兴它有帮助 :) 对于您的问题,您可以尝试将您的 $_SESSION['box'] 作为一个数组并像这个问题一样向这个数组添加新值:stackoverflow.com/questions/8964480/…。如果它不符合您的需求,您可以尝试做进一步的研究:)
【解决方案2】:

鉴于你正在这样做......

box = $(this).attr('title');

我假设您想将该变量传递给服务器。但是,您只是传递文字字符串 "box",而不是变量 box

在你的代码中,你已经写了这个......

data: { box : 'box' },

需要这样,才能传递box中的值:

data: { box : box },

顺便说一句,您创建了一个全局变量box。您应该使用var box = $(this).attr('title'); 代替box = $(this).attr('title'); 来创建函数的局部变量。

【讨论】:

  • 我只是尝试过,就像在我得到“成功!”之前一样但它没有得到数据。我有 在我的 index.php 中检查数据是否存在,但它不会写任何东西。并感谢“var”提示。
  • 验证数据是否实际被发送。检查box 的值或打开浏览器的开发者工具并检查AJAX 请求。
  • Felix 发现了我犯过的最愚蠢的错误。但是非常感谢您的帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
相关资源
最近更新 更多