首页 > 解决方案 > 使用 php 在 ajax 中发布让我未定义的索引

问题描述

我想通过(ajax到php)将数据从客户端发送/传递到服务器但是当我尝试这段代码时

 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script type="text/javascript">
  $.ajax({  
    type: 'post',  
    url: 'loo.php', 
    data: { data: 'some data' },
    success: function(response,w) {
       console.log(w);
    }
});
    </script>
  <?php 
      echo $_POST['data'];
  ?>

在我的浏览器中我得到了success打印出来,这意味着我猜想 javascript 代码工作正常,在 php 中我得到了Undefined index ps 我的文件名是loo.php 所有代码都在同一个文件中

编辑:我试图像这样分离我的文件:

我的 loo.php 文件:

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script type="text/javascript">
$.ajax({
    type: 'post',
    url: 'test.php',
    data: {data: 'some data'},
    success: function (response, w) {
        console.log(w);
    }
});
</script>

我的 test.php 文件:

<?php echo $_POST['data']; ?>

仍然有未定义的索引

ps 我在运行 loo.php 文件后将手册导航到 test.php 文件

标签: javascriptphpjqueryajaxpost

解决方案


您收到此错误是因为在加载页面时尚未发送 POST 请求。因此,仅在提交data时才显示提交,否则显示 JavaScript 代码。

<?php
if (isset($_POST['data'])) {
    die($_POST['data']);
}
?>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script type="text/javascript">
$.ajax({
    type: 'post',
    url: 'loo.php',
    data: {data: 'some data'},
    success: function (response, w) {
        console.log(w);
    }
});
</script>

推荐阅读