AJAX没有重定向到PHP文件

时间:2017-03-01 14:33:15

标签: php jquery html ajax

我试图通过AJAX克隆一个html文件中的特定div,然后到一个PHP文件,该文件将使用新克隆的内容创建一个新的html文件并将其保存在临时目录中。

我的最终目标是生成此临时文件,我将提取其网址并通过电子邮件发送给客户端。最终(在X天数之后),文件将被删除。

但是这仍然在思考未来...我遇到的问题是,当我点击SEND按钮时,它似乎循环通过AJAX确定,但似乎没有击中PHP文件。这是我到目前为止所拥有的。

$(document).ready(function(){

   $("#send").click( function() {
      var extract = $("#extract").html();
     $.ajax({
          type : "POST",
          url : "php.php",
          data : {id : extract},
          success: function(data){
             console.log("ok");
          }
       });
   });

});
p, h1, img {
  margin: 10px 0;
  padding: 0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="extract">
   <h1>Header Content</h1>
   <p>Bacon ipsum dolor amet shank pig filet mignon, pastrami hamburger andouille tenderloin sausage.</p>
   <p>Flank cupim ribeye beef ribs shoulder. Beef cow frankfurter ball tip capicola turducken porchetta tenderloin pork loin picanha turkey fatback pork.</p>
   <p><img src="http://www.placecage.com/300/450" alt=""></p>
   <p>Swine tri-tip porchetta pig filet mignon picanha ham hock turkey burgdoggen strip steak flank turducken. Sirloin venison andouille kevin ball tip. </p>
</div>
<button type="button" name="button" id="send">SEND</button>

在我的php.php文件中(它作为js文件存在于目录级别),我只是回显“ok”;并没有发生在屏幕上。我得到了控制台日志,但没有回音。我错过了什么?

谢谢,

塞尔吉奥

2 个答案:

答案 0 :(得分:2)

将您的代码更改为

$(document).ready(function(){

   $("#send").click( function() {
      var extract = $("#extract").html();
     $.ajax({
          type : "POST",
          url : "FULL_PATH_OF_PHP_FILE_php.php",
          data : {id : extract},
          success: function(data){
             console.log("ok");
             console.log (data);
          }
       });
   });

});

答案 1 :(得分:2)

您缺少有关服务器端和正面的一些基本信息。

在这里查看并阅读更多相关内容: https://www.w3schools.com/xml/ajax_intro.asp

同样@arkascha说你没有对从服务器收到的东西做任何事情。

基本上你的JS会向服务器发送HTTP请求(POST | GET),在你的情况下似乎是POST,带有id(你在data中定义的任何内容)。

棘手的是你的成功函数,success: function(data)这个数据将来自服务器的响应。由于您只是回显,数据应该是字符串类型变量。

接下来的步骤将来自你的php脚本做这样的事情(我发送一个JSON响应,这是大多数时间发生的事情所以你可以在javascript /客户端轻松解析它)

echo json_encode(['success' => true]);

然后构建您的Ajax调用以接受json(您可以在这里阅读更多内容:http://api.jquery.com/jquery.ajax/

dataType: 'JSON'

然后你的成功功能可以是:

success: function(data){
    console.log(data); // prints an array

    if (data.success) {
        // show some success information
    }
}