0

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

<?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 很陌生。任何人都可以帮助我吗?

4

1 回答 1

0

据我了解,您正在启动一个会话,然后,您想根据某人在文本区域中键入的内容创建一个 $_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();

查看此问题以获取示例 AJAX 请求

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

于 2013-07-11T14:52:04.873 回答