【问题标题】:set PHP's session without form submit在没有表单提交的情况下设置 PHP 的会话
【发布时间】:2013-07-09 14:51:16
【问题描述】:

我有一个带有两个按钮的文本区域。一个按钮将预览我输入的文本,另一个按钮将文本提交到服务器。这是我的代码:

<?php
session_start();
$_SESSION['ShortDescription']='';
if(isset($_POST['Submit']))
{...}
?>

<form name="news" action="add_news.php" method="post">
<textarea  rows="5" name="ShortDescription" id="ShortDescription"></textarea>&nbsp
<input type="button" name="Preview" value="Preview Description">
<input type="submit" name="Submit" value="Submit">
</form>

我是 PHP 和 JavaScript 的初学者。我知道问题可以通过使用 AJAX 来解决。但是我对 AJAX 很陌生。谁能帮帮我?

【问题讨论】:

  • 你期待什么结果?
  • 当我点击预览按钮时,$_SESSION['ShortDescription']=$_POST['ShortDescription']。

标签: php session html session-variables


【解决方案1】:

据我了解,您正在启动一个会话,然后您想根据某人在文本区域中键入的内容创建一个 $_SESSION 变量。假设您不希望在用户单击预览时更改页面(但您希望能够在将来的情况下使用 $_SESSION 变量),您将需要使用 AJAX 之类的东西(如您所提到的)。我发现完成这样的事情的最简单方法是一起使用 jQuery 和 AJAX。

基本上,您将创建一个 JavaScript 函数(使用 jQuery),以便在单击预览按钮时进行选择。它看起来像这样。首先我们在输入标签中添加 id...

<input type="button" id="previewID" name="Preview" value="Preview Description">

接下来我们在 javascript 文件中创建函数...

 $('#previewID').click(function() {
   request = $.ajax({
    url: "/form.php",
    type: "post",
    data: serializedData
    });
});

form.php 可以只是一个检查 $_POST['ShortDescription'] 是否存在的表单,如果存在,则对其进行清理并将其存储在 $_SESSION['ShortDescription'] 中。 “serializedData”只是正在传递的文本区域的内容。 (实际上只是通过 URL 传递变量内容。例如,如果 ShortDescription = "HelloThere",则序列化数据将是 "ShortDescription=HelloThere",它会附加到 URL 中,如...

www.website.com/form.php?ShortDescription=HelloThere

请记住,您通常不会手动设置它,这只是为了展示这个概念。使用类似的东西:

    var serializedData = $form.serialize();

View this question for an example AJAX request

免责声明:可能有更好的方法来实现这一点,但我想我会提供一种可能性,因为还没有人回答!

【讨论】:

  • 感谢您的帮助。你的答案只是一个文本框,那么两个或三个文本框呢?
猜你喜欢
  • 2011-12-04
  • 2013-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-20
  • 2014-08-24
  • 2016-08-29
  • 1970-01-01
相关资源
最近更新 更多