在js文件中加载php函数并使用函数

时间:2016-04-28 09:05:11

标签: javascript php jquery

我有以下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}

有什么想法吗?

4 个答案:

答案 0 :(得分: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
}

答案 1 :(得分:0)

只是处理您当前的代码。

在你的php文件中,我们可以说datasource.php

echo dateIndaysoff()

在您的请求文件中,我们可以说index.php

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

答案 2 :(得分:0)

你可以用AJaX做到这一点。像这样:

包含您正在使用的所有功能的PHP文件( functions.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"]);
}

答案 3 :(得分:0)

好的,如果我做对了,我必须这样做:

1st)创建一个.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)