我试图通过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”;并没有发生在屏幕上。我得到了控制台日志,但没有回音。我错过了什么?
谢谢,
塞尔吉奥
答案 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
}
}