使用AJAX发送数据

时间:2015-01-04 16:41:31

标签: php html ajax

这是我使用的代码,当我尝试使用echo $_POST['count'];时它不起作用 page.php

<input type="submit" value="go" id="more">
<script>
$(function(){
  $('#more').click(function(event) {
     event.preventDefault();

    $.ajax({
       type: "POST",
        url: "page.php",
        data: {"count":3} //saving number 3
        });

  });
 });
</script>

在page.php中。

  <?php echo $_POST['count'];?> //doesn't work.

4 个答案:

答案 0 :(得分:1)

您的JavaScript中未定义

$number。发生这种情况时,大多数(如果不是所有)浏览器都不会发布数据。它未定义,因为变量不存在于JavaScript范围中。我认为你的意思是回应PHP的价值。

试试这个

<?php  session_start(); 
 $_SESSION['n'] = 3;  
 $number = $_SESSION['n'];?>

<input type="submit" value="go" id="more">
<script>
$(function(){
  $('#more').click(function(event) {
     event.preventDefault();

    $.ajax({
       type: "POST",
        url: "page.php",
        data: {"count":<?php echo($number);?>}
        });

  });
 });
</script>

答案 1 :(得分:0)

$ .ajax从客户端向远程服务器发出请求,然后获得响应。您的page.php脚本需要回显某种类型的响应文本,然后您可以在客户端UI上使用该文本。我想你可能想提交一份表格。看起来像这样:

<?php  
session_start(); 
if(isset($_SESSION['n'])){ $number = $_SESSION['n']; }
else {$number = "<DEFAULT VALUE>";}
?>

<body>

<form name="formname" action="<?php echo "page.php?number=$number ?>" method="post">
<input type="submit" value="go" id="more">
</form>

</body>

然后在page.php上,你可以得到这样的数字变量: $ number = $ _POST ['number'];

*注意:您可以使用$ .ajax()将变量传递给远程脚本。然后,该远程脚本将获取这些变量,并发回响应。以下是有关在JQuery Click here

中使用ajax的一些文档

答案 2 :(得分:0)

要在同一页面上回显会话变量,您可以使用命名的隐藏输入并使用$number变量中的值;即:value="<?php echo $number;?>",然后使用<div>作为要显示在内部的元素。

page.php 将包含:

<?php 
echo $_POST['count'];

这是您将在浏览器中加载的代码,并使用jQuery:

<?php 
session_start(); 
?>

<?php 
 $_SESSION['n'] = 3;  
 $number = $_SESSION['n'];
?>

<html>
<head>
<script src="//code.jquery.com/jquery-latest.js"></script>
<script>
   $(document).ready(function() {
      $('#submit-button').click(function (e){
        e.preventDefault();

        $.ajax({
        type: 'POST',
        url: 'page.php',
        data: $("#theform").serialize(),
success: function(d){
   $(".result").html(d);
}
    });
  });
 });//end document ready
</script>
</head>
<body>

<div id="some_id">
<form id="theform">
 <div>  
   <input type="hidden" id="count" name="count" value="<?php echo $number;?>" />
 </div>

 <div>
   <button id="submit-button">Submit</button>
 </div>
 </form>
</div>
   <div class="result"></div>
</body>
</html>

答案 3 :(得分:0)

我认为创建formdata对象并向其添加输入或一些私有数据会更容易。之后,将xmlhttp对象发送给服务器。

var formdata = new FormData();
formdata.append("count", 3);
var xmlhttp;
..................
xmlhttp.send(formdata);

$count = $_POST['count'];