我有一个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?
答案 0 :(得分:1)
尝试从此更改url
和data
:
url: 'index.php',
data: { box : 'box' }
到此:
url: 'sessions.php',
data: { box : box }
答案 1 :(得分:0)
鉴于你正在这样做......
box = $(this).attr('title');
我假设您要将该变量传递给服务器。但是,您只是传递文字字符串"box"
,而不是变量box
。
在你的代码中,你写了这个......
data: { box : 'box' },
需要这样,传递box
中的值:
data: { box : box },
顺便说一下,你已经创建了一个全局变量box
。您应该使用box = $(this).attr('title');
来创建函数的本地变量,而不是var box = $(this).attr('title');
。