通过Ajax将数据传递给PHP而无需使用提交按钮
问题描述:
我浏览了一下,很遗憾,我在网站上找到的解决方案似乎没有解决我的问题。通过Ajax将数据传递给PHP而无需使用提交按钮
基本上我正在做一个项目,我需要有效地设置日记 - 用户在textarea元素中写入,并通过PHP传递给数据库并存储给用户。在演讲者的视频中,他似乎没有使用提交按钮(即使他不是,我认为学习该怎么做会是一件有趣的事情)。
虽然我有一些问题。这是我的PHP:
<?php
session_start();
if(array_key_exists("id", $_COOKIE)) {
$_SESSION['id'] = $_COOKIE['id'];
}
if(array_key_exists("id",$_SESSION)) {
echo "Logged in: <p><a href='secretDiaryFinal2.php?logout=1'>
Log out</a></p>";
} else {
header("Location: secretDiaryFinal2.php");
}
/* I'm putting in the database update later, for now I just wanted to check if I could
actually create the POST variable below*/
$msg = "";
if(array_key_exists('diaryEntry',$_POST)) {
$msg = $_POST['diaryEntry'];
} else {
$msg = "Some kind of PHP error";
}
?>
相关的HTML:
<body>
<div id="testDiv">
<? echo $msg ?>
</div>
<div class="container" id="diaryArea">
<form method="post">
<textarea id="diary" value=""></textarea>
</form>
</div>
相关JQuery的(我在阿贾克斯非常虚弱,我怀疑有很多的问题,在这里 - 也注意到网址我使用实际上是在与JQuery相同的脚本中,我不确定它是否有效)。
的基本思想是每一个用户类型,数据库应更新时间(我知道这是一个很大的呼叫服务器的,我可能会用一个定时的命令替换):
<script type="text/javascript">
$("#diary").keyup(function() {
var dataString = $("#diary").val();
$.ajax({
type: "POST",
url: "loggedInPageFinal.php",
data: ({diaryEntry:dataString}),
success: function(data) {
console.log(data);
}
});
return false;
});
</script>
非常感谢,并为我的糟糕代码道歉!
答
var DataString = $("#diary").val();
$.post("loggedInPageFinal.php",{dataString:DataString }, function(data) {
console.log(data);
});
答
你的ajax脚本确实有效。 但是你的php代码没有返回任何东西。在代码的末尾放置exit($msg);
,看看会发生什么。