2016-04-28 6 views
0

Ich habe die folgende PHP-Funktion.Laden Sie die PHP-Funktion in der js-Datei und verwenden Sie die Funktion

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(); 
    } 

Diese Funktion sucht einen Eingangswert innerhalb einer Spalte der Datenbanktabelle und wenn sie feststellt, dann haben wir ein TRUE, sonst FALSE.

Also, ich habe eine jquery innerhalb. Js-Datei, wo ich eine bestimmte Aktion ausführen, und ich möchte überprüfen, ob ich ein wahres oder falsches Ergebnis habe. In jQuery verwende ich eine Variable namens val. So in jquery an irgendeinem Ort möchte ich etwas wie dieses haben:

Irgendwelche Ideen?

+5

Erstellen Sie eine AJAX/XHR-Anfrage? – Daan

+2

Verwenden Sie nicht mysql_connect, dies ist veraltet und wird auf PHP7 stattdessen mit PDO entfernt. –

Antwort

1

Statt den PHP-Code in eine Funktion der Verpackung können Sie es wickeln in einem if($_POST['checkDate']){//your code here}, dann in Javascript machen einen Ajax-Request (http://www.w3schools.com/ajax/), der ein Parameter checkDate und im success Block von der Ajax-Namen sendet anrufen können Sie Ihr Code dargestellt Sie als {something}

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

und die php:

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

Können Sie ein konkreteres Beispiel geben? –

0

einfach mit Ihrem aktuellen Code zu arbeiten. läßt

In Ihrer PHP-Datei kann sagen index.php

datasource.php sagen

echo dateIndaysoff() 

In Ihrer anfordernden Datei

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

Sie es mit AJaX tun können. Etwas wie folgt aus:

Eine PHP-Datei mit allen Funktionen, die Sie verwenden (functions.php):

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

A JS die Daten anfordern:

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

getTestByAJaX. php. Ein PHP, das den AJaX-Aufruf erhält und die PHP-Funktion ausführt.

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

Ok, wenn ich dieses Recht habe ich, dies zu tun:

1.) Erstellen Sie eine Php-Datei, wo ich meine PHP-Funktion einfügen wird und über die Funktion habe ich diese:

$ mydate = $ _POST ['val'];

wo $ mydate das Ergebnis der Funktion ist, wie Sie von meinem ersten Beitrag sehen können, und val ist die Variable, die ich in $ mydate von Ajax setzen möchte.

2.) Ich werde in .js Datei gehen. Jetzt ist hier das Problem. Hier habe ich einen Code wie folgt aus:

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(); 
} 
}); 

Innerhalb dieses Codes in der ersten, wenn ich will, um zu sehen, ob die Variable val in meiner Datenbank-Tabelle ist.Also, wie könnte ich diese jQuery mit dem Ajax, das Sie vorschlagen, richtig schreiben, damit dies funktioniert? Bitte schauen Sie auch, vielleicht habe ich einen Fehler in meiner PHP-Funktion (in dieser Funktion möchte ich eine Verbindung mit einer Datenbank herstellen und eine WAHR nehmen, wenn $ myvalue in einer Tabellenspalte ist)

Verwandte Themen