![](/img/trans.png)
[英]Getting error in ajax success function. getsaves.text is not a function
[英]Ajax doesn't get to success function. Always error function. It fails to post data to another file
请耐心等待。 据我所记得,这是我的第一篇文章。
这是我的calendar.js
脚本的一部分。 我想POST
,我从模式窗口获取数据index.php
到sql.php
。
function saveModal() { /*JQuery*/
var current_date_range = $(".modal-select#daterange").val();
var current_room_number = $("#mod-current-room-number").val();
var current_room_state = $("#mod-current-room-state").val();
var myData = {"post_date_range": current_date_range, "post_room_number": current_room_number, "post_room_state": current_room_state};
var myJSON = JSON.stringify(myData);
$.ajax({
type: "POST",
url: "sql.php",
contentType: "application/json; charset=utf-8",
dataType: "json",
async: true,
data: myJSON,
beforeSend: function() {
$("#ajax").html("<div class='loading'><img src='/images/loader.gif' alt='Loading...' /></div>");
},
success: function(result){
$("#ajax").empty();
$("#ajax").html(result);
$("#ajax").fadeIn("slow");
window.location.reload(true);
},
error: function(){
alert(myJSON);
$("#ajax").html("<p class='error'> <strong>Oops!</strong> Try that again in a few moments.</p>");
}
})
}
我得到的数据就很好了(如您所见,我已经检查了error: function()
with alert(myJSON);
)。 看起来像这样: {"post_date_range":"12/19/2018 - 12/28/2018","post_room_number":"118","post_room_state":"3"}
。 没关系, daterangepicker.js
以丑陋的MM/DD/YYYY
格式返回日期,我非常想将其更改为YYYY-MM-DD
。 真正的问题是,代码永远不会success: function()
。
现在,我的sql.php
与calendar.js
和index.php
位于同一文件夹中。
在sql.php
我尝试使用以下方法检索这些值:
$currentDateRange = $_REQUEST['post_date_range'];
$currentRoomNumber = intval($_REQUEST['post_room_number']);
$currentRoomState = intval($_REQUEST['post_room_state']);
我检查了许多其他SO问答,但没有一个可以帮助我解决问题。 我没有看到任何拼写错误。 这并不是违反same origin policy
规则。 我不想使用jQuery $.post
函数。 有人看到明显的解决方案吗?
您想发送数组而不是字符串,所以直接发送myData以获取PHP文件中的数组值,而不是转换为JSON字符串。它将根据需要与当前的PHP文件一起使用。
您应该为要发送的JSON数据字符串指定POST密钥:
var myJSON = JSON.stringify(myData);
(...)
$.ajax({
(...)
data: 'data=' + myJSON,
您需要在PHP文件中解析(解码)此字符串,然后才能再次将其用作数组/对象:
$data = json_decode($_REQUEST['data']);
$currentDateRange = $data['post_date_range'];
$currentRoomNumber = intval($data['post_room_number']);
$currentRoomState = intval($data['post_room_state']);
另外,jQuery.ajax函数中的dataType
被指定为“期望从服务器返回的数据类型”。 根据jQuery文档 。 据我从您的代码中得知,您可能希望其他响应作为响应,因此请尝试排除此行。
对不起,你们已经累了。 这是我的第三周编程,所以我缺乏知识是有错的。 我不知道URL中AJAX
和PHP
之间的数据流如何工作...
在搜索其他错误时,我打印或回显了许多不同的内容。 尽管PHP
文件可以是具有多个值的数组,但它仅应回显1件事情。
例如:
$return_arr = array("sql"=>$sql1, "result"=>$result, "out"=>$out);
echo json_encode($return_arr);
我再次表示歉意。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.