2016-04-28 44 views
0

我有以下php函数。在js文件中加载php函数并使用函数

public function dateIndaysoff($mydate=false){ 
     if(!$mydate)return false; 

     $host = "localhost"; 
     $user = "user"; 
     $pass = "pass"; 
     $databaseName = "database"; 
     $tableName = "table"; 
     $con = mysql_connect($host,$user,$pass); 
     $dbs = mysql_select_db($databaseName, $con); 

     // $db=JFactory::getDbo(); 
     $dbs->setQuery("select date from table WHERE `date`='$mydate'")->query(); 
     return (int) $db->loadResult(); 
    } 

该函数搜索数据库表列中的输入值,如果找到则返回TRUE,否则返回FALSE。

所以,我有一个jQuery的内部.js文件,我执行一个特定的操作,我想检查如果我有一个TRUE或FALSE结果。在jQuery中,我使用了一个名为val的变量。因此,在一些地方jquery里面我想要这样的东西:

if (dateIndaysoff(val)) {something} 

任何想法?

+5

创建一个ajax/XHR请求? – Daan

+2

不要使用mysql_connect,这是弃用的,将被删除在php7上使用PDO来代替。 –

回答

1

代替在一个功能包裹PHP代码的可以在一个if($_POST['checkDate']){//your code here}包裹它,然后在javascript进行AJAX请求(http://www.w3schools.com/ajax/),该发送参数命名checkDate并在AJAX的success块呼叫时,可以有你的代码中表示为{something}

function checkDate(){ 
    $.post('yourPhpFile.php', {checkDate:$dateToBeChecked}, function(data){ 
    if(data){alert("true")}; 
    }); 
}; 

和PHP:

if($_POST['checkDate']){ 
    //your current function, $_POST['checkDate'] is the parameter sent from js 
} 
+0

你能举一个更具体的例子吗? –

0

只是为了与您当前的代码打交道。

在你的PHP文件可以说datasource.php

echo dateIndaysoff() 

在你请求的文件让说的index.php

$.ajax({ 
    url: "index.php", 
    context: document.body 
}).done(function(data) { 
    /* do whatever you want here */ 
}); 
0

你可以使用AJAX做到这一点。事情是这样的:

与正在使用(的functions.php)的所有功能的PHP文件:

function test($data) { 
    // ... 
} 

一个JS请求数据:

function getTest() { 
    $.ajax('getTestByAJaX.php', { 
     "data": {"param1": "test"}, 
     "success": function(data, status, xhr) { 
     } 
    }); 
} 

getTestByAJaX。 php。一个获取AJaX调用并执行PHP函数的PHP。

require 'functions.php'; 
if (isset($_REQUEST["param1"])) { 
    echo test($_REQUEST["param1"]); 
} 
0

好吧,如果我得到这个权利,我必须这样做:

1)创建一个PHP文件,其中我将输入我的PHP函数和功能上面,我把这个:

$ mydate = $ _POST ['val'];

其中$ mydate是函数的结果,你可以从我的第一篇文章中看到,val是我想从ajax放入$ mydate的变量。

2)我会去.js文件里面。现在是这个问题。在这里我有这样的代码:

jQuery(".datepicker").change(function() { 
var val = jQuery(this).datepicker().val(); 
console.log(val); 
    if (dateIndaysoff(val)) { 
    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(); 
} 
}); 

在这段代码中,在第一个if,我想看看变量val是否在我的数据库表内。那么,我如何才能正确使用您提出的Ajax来编写这个jQuery?也请看看我的php函数中有错误(在这个函数中,我想连接数据库,如果$ myvalue在表列内)则为TRUE)