Передача переменной javascript в php без обновления страницы

У меня есть 5×5 сетка 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 без обновления страницы?

Попробуйте изменить url и ваши data из этого:

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

к этому:

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

Учитывая, что вы это делаете …

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

Я предполагаю, что вы хотите передать эту переменную на сервер. Однако вы просто передаете буквенную строку "box" , а не поле переменной.

В вашем коде вы написали это …

 data: { box : 'box' }, 

который должен быть таким, чтобы передать значение в box :

 data: { box : box }, 

В стороне вы создали глобальную переменную. Вместо box = $(this).attr('title'); , вы должны использовать var box = $(this).attr('title'); для создания переменной, связанной с функцией.