我刚开始学习php&阿贾克斯,所以请保持温和。
我有一个可点击的内容。当用户单击地图时,点值显示在div中。在他选择一个点后,他可以进入下一步。
现在我想将div的内容保存到php会话中。如何将div内容放入php会话并继续下一步?
我试过了:
$("#btn").click(function()
{
var red = $(this).attr("id");
$(".tab").text(red);
$.post("backend.php", {"cpl": red});
});
Backend.php
<?php
session_start();
$_SESSION['var1'] = $_POST['cpl'];
?>
但他什么都不做。我做错了什么?
答案 0 :(得分:0)
你可以添加一个php脚本,它接收这个div的内容(用jQuery获取这个内容),然后将它存储在PHP session var中。
答案 1 :(得分:0)
像这样:
的index.php
<?php
session_start();
?>
<div id="someDiv">
<em>This</em> is the content you'll store in session.
</div>
<div id="saveDivContent">
Click here to store the content.
</div>
<pre>
<?php var_dump($_SESSION); ?>
</pre>
<form id="hiddenForm" style="display:none">
<input type="hidden" id="sendDivContent" name="content"></input>
</form>
<script src="jquery.js"></script>
<script>
$(document).ready(function () {
$("#hiddenForm").bind("submit", function (event) {
$.ajax({
async:true,
data:$("#hiddenForm").serialize(),
error:function (XMLHttpRequest, textStatus, errorThrown) {
console.log("Handle error.");
},
success:function (data, textStatus) {
console.log("Handle success");
},
type:"POST",
// url:"save_content.php"
url:"\/link\/to\/file\/that\/saves_div_content.php"
});
return false;
});
$("#saveDivContent").bind("click", function (event) {
var divContent = $("#someDiv").html();
$("#sendDivContent").val(divContent);
$("#hiddenForm").submit();
return false;
});
});
</script>
saves_div_content.php:
<?php
session_start();
if($_SERVER['REQUEST_METHOD'] === 'POST')
{
if( isset($_POST['content']) && $_POST['content'] !== null && $_POST['content'] !== null )
$_SESSION['div_content'] = $_POST['content'];
}
/* EOF */
saves_div_content.php 拥有唯一真正相关的代码,但我很容易提供完整的示例。
另一件可能混淆的事情是无关的AJAX机制。您可以使用POST方法(<form action="index.php" method="POST">
)在 index.php 上创建该表单,并将 saves_div_content.php 中的代码添加到的index.php 。
您可以完全避免使用两个单独的文件。