我是javascript和php的新手。我正在尝试编写一个javascript函数,将字符串发回服务器,以便我可以捕获它并将其保存在数据库中。它最终会发布从google.maps地理编码api获得的数据,但就目前而言,我只是试图让任何帖子上班。我已经能够使用html表单发布到服务器,但还没有成功使用javascript函数,我有一种预感,我错过了一些基本的东西。
我在我的Script.js文件中包含了jquery库:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
然后我添加了这个函数,我刚从Script.js文件中的examples复制了这个函数:
<script>
function namepost(){
document.write("Tired of trying to debug this bloody thing");
$.post("test.php",{firstname:"John"});
}
</script>
出于测试目的,我创建了文件test.php,这里是代码:
<?php
require_once 'Script.js';
echo "<script>namepost()</script>";
$name = $_POST['firstname'];
print_r($_POST);
echo "Firstname is {$name}";
这是我运行代码时得到的输出:
Tired of trying to debug this bloody thingArray ( ) Firstname is
我的函数被调用,但似乎我没有发布firstname,因为$ _POST给了我一个空数组。我不知道为什么,而且我已经在这里待了好几个小时。我需要包含另一个文件来使用jquery $ .post函数吗?请帮助我保存余下的头发和理智!
答案 0 :(得分:1)
jQuery $ .post将执行异步POST,因此除非您使用javascript处理结果,否则您的页面不会更新:
$.post("test.php", {firstname:"John"}, function(result){ alert(result) });
($ .post的第三个参数是一个在服务器响应后执行的函数。)
如果你想进行同步POST,你需要使用jQuery $ .ajax函数,如下所示:
$.ajax({
type: 'POST',
url: "test.php",
data: {firstname:"John"},
success: function(result){ alert(result) },
async:false
});
答案 1 :(得分:0)
html:
<html>
<head>
<title>the title</title>
<script type="text/javascript"
src="/jquery/jquery-1.3.2.min.js"></script>
<script type="text/javascript" language="javascript">
$(document).ready(function() {
$("#driver").click(function(event){
$.post(
"/jquery/result.php",
{ name: "Zara" },
function(data) {
$('#stage').html(data);
}
);
});
});
</script>
</head>
<body>
<p>Click on the button to load result.html file:</p>
<div id="stage" style="background-color:blue;">
STAGE
</div>
<input type="button" id="driver" value="Load Data" />
</body>
</html>
php:
<?php
if( $_REQUEST["name"] )
{
$name = $_REQUEST['name'];
echo "Welcome ". $name;
}
?>
更改值以匹配您的值。