我试图将一些日期参数发送到我的php文件,它将使用它来收集两个日期之间的一些信息。
一切都很好,除非我似乎无法从javascript中获取参数。
Javascript / ajax:
function lastInn() {
clearTable();
var fra = document.getElementById("fraDato").value;
var til = document.getElementById("tilDato").value;
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
//document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
alert(xmlhttp.responseText);
var data = JSON.parse(xmlhttp.responseText);
$.each(data, function (key, val) {
addData(val.Dato, val.BookedBy, val.Fra, val.Til);
});
}
};
xmlhttp.open("POST", "test2.php?", true);
xmlhttp.send('dato1 =' + encodeURIComponent(fra) + '&dato2=' + encodeURIComponent(til));
}
PHP文件:
include 'Db.php';
$dato1 = $_POST['dato1'];
$dato2 = $_POST['dato2'];
//$dato1 = '2014-02-18';
//$dato2 = '2014-02-22';
$con = DbConnect();
//$a = explode('.',$dato1);
//$revdato1 = $a[2].'-'.$a[1].'-'.$a[0];
//$newdate1 = str_replace(".","-",$revdato1);
//$b = explode('.',$dato2);
//$revdato2 = $b[2].'-'.$b[1].'-'.$b[0];
//$newdate2 = str_replace(".","-",$revdato2);
$result = mysqli_query($con, 'SELECT SUBSTRING(DateFrom FROM 1 FOR 10) AS Dato, BookedBy, SUBSTRING(DateFrom FROM 12 FOR 5) AS Fra, SUBSTRING(DateTo FROM 12 FOR 5) AS Til FROM kalendar WHERE SUBSTRING(DateFrom FROM 1 FOR 10) BETWEEN "'.$dato1.'" AND "'.$dato2.'"');
while ($row = mysqli_fetch_assoc($result)) {
$output[] = $row;
}
echo json_encode($output);
mysqli_close($con);
我在哪里出错的任何想法?
最佳答案
尝试用jQuery
function lastInn(){
$.ajax({
url : 'test2.php',
type: "POST",
data : {dato1: $('#fraDato').val(),dato2: $('#tilDato').val()},
success : function(data){
alert(data);
// do your stuff
},
error : function(){
$('#error').html("Error!");
}
});
}
PHP代码
print_r($_POST);
关于javascript - 从Ajax接受php中的POST参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23363271/