【问题标题】:Load php function in js file and use function在js文件中加载php函数并使用函数
【发布时间】:2016-04-28 09:05:11
【问题描述】:

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

所以,我在 .js 文件中有一个 jquery,我在其中执行特定操作,我想检查我是否有 TRUE 或 FALSE 结果。在 jquery 中,我使用一个名为 val 的变量。所以在 jquery 的某个地方我想要这样的东西:

if (dateIndaysoff(val)) {something}

有什么想法吗?

【问题讨论】:

  • 创建一个 ajax/XHR 请求?
  • 不要使用 mysql_connect ,这已被弃用,将在 php7 使用 PDO 时删除。

标签: javascript php jquery


【解决方案1】:

您可以将php代码包装在if($_POST['checkDate']){//your code here}中,而不是将其包装在一个函数中,然后在javascript中发出一个ajax请求(http://www.w3schools.com/ajax/),它发送一个名为checkDate的参数并在success块中在 ajax 调用中,您可以将代码表示为 {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
}

【讨论】:

  • 你能举一个更具体的例子吗?
【解决方案2】:

只是为了使用您当前的代码。

在你的 php 文件中说 datasource.php

echo dateIndaysoff()

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

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

【讨论】:

    【解决方案3】:

    您可以使用 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"]);
    }
    

    【讨论】:

      【解决方案4】:

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

      1st)创建一个 .php 文件,我将在其中插入我的 php 函数,并在函数上方放置:

      $mydate = $_POST['val'];

      其中 $mydate 是函数的结果,正如您从我的第一篇文章中看到的那样,val 是我想从 ajax 放入 $mydate 的变量。

      2nd) 我将进入 .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)

      【讨论】:

        猜你喜欢
        • 2013-08-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-08
        • 1970-01-01
        相关资源
        最近更新 更多