[英]Pass value in php and use in js
我有一个带有以下代码的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中接收结果。
我做错了什么?
我可能是错的,但似乎您以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 );
});
});
而且,顺便说一句,不要忘记逃避注射或使用PDO绑定。
更新了解决方案。 在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文件中以查看发生了什么。 如果我仅在URL末尾使用带?date的php文件,并且在js内看到日期变量并转到URL,我会得到正确的结果。
但是由于某种原因,我总是从.js IF中获取隐藏条件。 当日期等于30.04.2016时,我应该得到SHOW条件,但是似乎我在js中有一个错误(可能不是),或者这两个文件之间的连接有问题。
有任何想法吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.