我有一个带两个按钮的textarea。一个按钮将预览我输入的文本,另一个按钮将文本提交给服务器。这是我的代码:
<?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> 
<input type="button" name="Preview" value="Preview Description">
<input type="submit" name="Submit" value="Submit">
</form>
我是PHP和JavaScript的初学者。我知道使用AJAX可以解决问题。但是我对AJAX很新。有人可以帮帮我吗?
答案 0 :(得分: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();
View this question for an example AJAX request。
免责声明:可能有更好的方法来实现这一目标,但我认为我会提供一种可能性,因为还没有人回答!