将变量从Jquery传递给PHP

时间:2016-07-25 22:03:52

标签: javascript php jquery

我试图让服务器显示客户端的日期和时间,但是没有显示正确的输出。以下是代码的相关部分:

<script type="text/javascript">
  $(function(){
    var d = new Date();
    var dateStr = d.toString()
    $.post(window.location, {
        dateStr: dateStr
    });
    alert(dateStr);
});
</script>

<div id="divMessage">
<?php 
    $dstr = 'nothing!';
    if(isset($_POST["dateStr"]) && strlen(trim($_POST["dateStr"])) > 0)
        $dstr = $_POST["dateStr"];
    $v = 'current date/time is '.$dstr;
    echo "<span style=\"color:green\">$v</span>";
?> 
</div>

如果代码正确,我应该看到"current date time is <client's date/time>",但我看到"current date time is nothing!"。我在这做什么错?

3 个答案:

答案 0 :(得分:1)

这是你缺少的,看看从服务器返回的数据:)

alert(document.referrer);

无论如何你需要分割文件,因为我认为这将返回整个页面,并且你的颜色跨度:)

答案 1 :(得分:1)

正如其他人所说,你必须使用2个文件,其中一个用js,而另一个用于php,在file.php中,你可以制作你想要的东西,例如保存在db中。如果您不理解可以随意询问的内容,我会尝试对代码进行评论。

检查保存文件php的路径

file.php

<?php

$result = Array();

if (isset($_POST['action'])) {
    $client_date = new Date();

    // HERE YOU CAN USE FOR SAVE IN DB
    $result ['result_msg'] = 'success';
    $result ['client_date'] = $client_date;
} else {
    $result ['result_msg'] = 'error';
}
echo json_encode($result);

?>

HTML

$(document).ready(function(){
    $.ajax({        
        type: "POST",
        url: "file.php",
        data: { 
            action : 'what you want'
            // IF YOU WANNA SAVE CLIENT INFORMATION HAVE TO MAKE A FORM AND PASS DATA HERE FOR EXAMPLE CLIENT ID ....
        },
        dataType: 'json'
    }).done (function(result) {
        result = JSON.parse(JSON.stringify(result));
        if (result.result_msg === 'success') {
            console.log(result.client_date); // YOU CAN SHOW IN HTML DIV
        } else {
            console.log('ERROR');
        }

    }).fail(function(result) {

        console.log('ERROR');

    });
});

干杯!!!

答案 2 :(得分:1)

希望这会有所帮助,您需要添加一些内容才能使其正常工作。

检查页面是否通过post提交,然后解析消息的响应以重新显示它。

<script type="text/javascript">
  $(function(){
    var d = new Date();
    var dateStr = d.toString();
    $.post(window.location, {
        dateStr: dateStr
    }).success(function(data){
        var res = $(data).filter('#divMessage').text();
        //console.log(res);
        $('#divMessage').replaceWith(res);
    });

});
</script>


<div id="divMessage">
<?php
    //include "simple_html_dom.php";
    //$html = new simple_html_dom();
    //$html->load_file('index2.php');
    //$v = $html->find('div[id=box]', 0)->plaintext;

    if (!empty($_POST['dateStr'])) {
        $dstr = 'nothing!';
        if (isset($_POST["dateStr"]) && strlen(trim($_POST["dateStr"])) > 0) {
            $dstr = $_POST["dateStr"];
        }
        $v2       = 'current date/time is ' . $dstr;
        echo "<span style=\"color:green\">$v2</span>";
    }
?>
</div>