2016-04-30 6 views
1

に使用し、私はこのコードでPHPのファイルがあります:私はこのパスPHPの値とJS

jQuery(".datepicker").change(function() { 
    var val = jQuery(this).datepicker().val(); 
    var finalval = jQuery.get("url-to-phpfile/daysoff.php",{date:val}); 
    if (finalval) { 

を使用するファイルが、その私は常に真持っているように私の.jsで今

<?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; 
      }        
     ?> 

を結果として。 PHPは独自の作品で完璧です。私はPHPを呼び出して、URLを介してdatepickerからの値を渡すjqueryしようとしている場合、結果が真であれば何かを行う。私はjqueryを固定値で試してみて、その魅力のように働いています。間違いは、PHPがGETを使って値を受け取っているか、結果を受け取っているjqueryでなければなりません。

どうすればいいですか?

+0

'$ _GET ['date']'に渡す日付形式は何ですか?どのようにDBに格納されていますか? – Brian

答えて

3

私は間違っている可能性がありますが、最終的な回答があなたの返信であると思われているようですが、実際はあなたのXHR通話になります。あなたの注射をescape、またはPDOバインディングを使用することを忘れないでください、余談として、

jQuery(".datepicker").change(function() { 
    var val = $(this).datepicker().val();  // or $(this).val(); ? 
    $.get("ajax/test.html?date=" + val, function(data) { 
     alert("Result is: " + data); 
    }); 
}); 

をそして:あなたのリスナーでこれを試してみてください。

+0

はい、私はこれを最初の場所に掲示されているように.datepickerの状態を変えたいと思っています。 –

+0

ええ、すべてあなたの.changeリスナに入れてください。私はそれを更新してあなたを見せます。 –

-1

更新された解決策。 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で:あなたは私が起こっていただきました!見るためにPHPと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(); 
    } 
}); 
}); 

を。 URLの最後にPHPのファイルのみを使用すれば正しい結果が得られ、jsの中に日付の変数があり、URLに移動することがわかります。

しかし何らかの理由で私はいつも.js IFからHIDE状態になります。私は日付が30.04.2016に等しいときにSHOW条件を取得する必要がありますが、どちらか私はjsで(おそらくない)いずれか私はそれらの2つのファイルの接続間に何か間違っているかのように思えます。

任意のアイデアですか?

+0

あなたは答えを使って質問していますか?とにかく、あなたのエラーがどこにあるかは簡単に分かります:console.log(dateIndaysoff);. true/falseを引用符で囲み、あなたの結果よりも他のものをエコーするようなPHPの問題はたくさんあります。上記の私の答えを試しましたか? –