我有一个包含以下代码的php文件:
<?php
dateIndaysoff($_GET['date']);
function dateIndaysoff($mydate){
if(!$mydate)return false;
$host = "localhost";
$user = "user";
$pass = "pass";
$databaseName = "db";
$con = new mysqli($host,$user,$pass,$databaseName);
if ($con->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$query = "SELECT date FROM table WHERE date = '$mydate'";
$result = $con->query($query);
if ($result->num_rows < 1) {$exists = "FALSE";} else {$exists = "TRUE";}
return $exists;
}
?>
现在我的.js文件中使用了这个
jQuery(".datepicker").change(function() {
var val = jQuery(this).datepicker().val();
var finalval = jQuery.get("url-to-phpfile/daysoff.php",{date:val});
if (finalval) {
但是它总是如此真实。 php由自己的作品完美。我正在尝试在jquery中调用php并通过url传递来自datepicker的值,如果结果为true则执行某些操作。我尝试了具有固定值的jquery,它的工作就像一个魅力。我做的错误应该是或者在PHP中接收GET值或者在接收结果的jquery中。
我做错了什么?
答案 0 :(得分:3)
我可能是错的,但似乎你假设finalval是你的回答,但它实际上是你的XHR电话。在你的听众中试试这个:
jQuery(".datepicker").change(function() {
var val = $(this).datepicker().val(); // or $(this).val(); ?
$.get( "ajax/test.html?date=" + val, function( data ) {
alert( "Result is: " + data );
});
});
另外,不要忘记escape注射,或使用PDO绑定。
答案 1 :(得分:-1)
更新了解决方案。 在php文件中我使用:
<?php
$conversion = $_GET['date'];
$newDate = date("Y-m-d", strtotime($conversion));
dateIndaysoff($newDate);
$hello = dateIndaysoff($newDate);
echo 'Result:'.$hello . '<br>';
echo 'Converted date:'.$newDate. '<br>';
echo 'Initial date:'.$conversion. '<br>';
function dateIndaysoff($mydate){
if(!$mydate)return false;
//Connection
$host = "localhost";
$user = "user";
$pass = "pass";
$databaseName = "db";
$con = new mysqli($host,$user,$pass,$databaseName);
if ($con->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
//Select data
$query = "SELECT date FROM table WHERE date = '$mydate'";
$result = $con->query($query);
// $db=JFactory::getDbo();
if ($result->num_rows < 1) {$exists = "FALSE";} else {$exists = "TRUE";}
return $exists;
}
?>
并在.js中使用此:
jQuery(".datepicker").change(function() {
var val = jQuery(this).datepicker().val();
console.log(val);
jQuery.get("/daysoff.php",{date:val},function(dateIndaysoff){ // send back 0 or 1
if (dateIndaysoff) {
console.log("hide");
jQuery('.chzn-drop li:nth-child(9)').hide();
jQuery('.chzn-drop li:nth-child(10)').hide();
} else {
console.log("show");
jQuery('.chzn-drop li:nth-child(9)').show();
jQuery('.chzn-drop li:nth-child(10)').show();
}
});
});
正如您所看到的,我已经将日志放在php和js文件中以查看最新情况。我得到了正确的结果,如果我只使用带有?日期在网址末尾的php文件,我在js中看到我得到了我的日期变量并且它转到了URL。
但由于某些原因,我总是从.js IF获得HIDE条件。当日期等于30.04.2016时,我应该得到SHOW条件,但似乎我在js中有错误(可能不是)我连接这两个文件之间有什么问题。
任何想法?