Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将JavaScript输出作为POST请求传递给PHP?[使用js获取TZ,然后发送到mySQL]_Javascript_Php_Mysql_Ajax_Codeigniter - Fatal编程技术网

如何将JavaScript输出作为POST请求传递给PHP?[使用js获取TZ,然后发送到mySQL]

如何将JavaScript输出作为POST请求传递给PHP?[使用js获取TZ,然后发送到mySQL],javascript,php,mysql,ajax,codeigniter,Javascript,Php,Mysql,Ajax,Codeigniter,如何将JavaScript输出作为POST请求传递给PHP。[使用js获取TZ,然后发送到mySQL] 使用 AJAX将是未来的发展方向。如果您感到害怕,最好从jQuery开始。你可以这样做 var data = new Object(); data.tz = timezone.name(); $.post("ajaxendpoint.php", data, function() { // do something after ajax com

如何将JavaScript输出作为POST请求传递给PHP。[使用js获取TZ,然后发送到mySQL]

使用


AJAX将是未来的发展方向。如果您感到害怕,最好从jQuery开始。你可以这样做

var data = new Object();
data.tz = timezone.name();

$.post("ajaxendpoint.php",
       data,
       function() {
           // do something after ajax completes if you want
       });
ajaxendpoint.php
中,您可以获得时区:

<?php
$timezone = $_POST['tz'];

使用ajax和jQuery,您可以这样解决:

function sendInfo() {
    var timezone = jstz.determine();

    $.ajax({
        url: "myScript.php",   // URL of your php script
        type: "post",
        data: {timezone: timezone.name()},
        success: function(data) {
            alert("success");
        } 
    });
};
<?php
    $timezone = $_POST['timezone'];
    ...
然后将此函数绑定到某个按钮。在php文件(myScript.php)中,可以得到如下值:

function sendInfo() {
    var timezone = jstz.determine();

    $.ajax({
        url: "myScript.php",   // URL of your php script
        type: "post",
        data: {timezone: timezone.name()},
        success: function(data) {
            alert("success");
        } 
    });
};
<?php
    $timezone = $_POST['timezone'];
    ...

在page.php文件中

    <?php
        $tz = $_POST['timezone'];
       //Do other thing to store timezone in database
    ?>

根据您的更新,您应该有一个隐藏的表单字段:

然后,您可以通过编程方式添加时区:

<script>
    var timezone = jstz.determine();
    // set the value of your hidden timezone field to the correct value
    document.getElementById('tz').value = timezone.name();
</script>

var timezone=jstz.determine();
//将隐藏时区字段的值设置为正确的值
document.getElementById('tz')。value=timezone.name();

当您希望在不刷新页面的情况下将客户端数据发送到服务器时,您总是需要使用ajax/通过将数据作为表单提交到
数据下的submitWouldn
be
{timezone:timezone.name()}
?而不是
时区
,因为name()方法输出时区的实际值。或者您可以简单地使用jQuery$(“myButton”)。单击(function(){})并将ajax代码放入该函数中。我查找了.bind()jQuery方法。我决定做的是在submit按钮中添加一个ID,并使用.bind():
$('#submit').bind('click',sendInfo())
我测试了它,我注意到,即使我没有单击submit,也会弹出
成功
,这应该发生吗?你必须从定义中删除括号$(#提交”).bind(“单击”,发送信息);否则,您的函数将在加载这一行代码时立即启动,而不是在您实际单击按钮时启动。这比ajax方法简单得多。你认为哪一个最方便?我希望我能把你所有的答案都收集起来。在编辑之前,假设你只想把时区发送到服务器,并且它会异步发生(不需要重新加载页面)。但是,如果您已经同步提交表单,则不需要使用AJAX。它们都非常方便和容易,但是在这个例子中AJAX没有意义。不过,请阅读AJAX,它被广泛使用,可以提供更好的用户体验。不要被它吓倒,它和常规的GET和POST请求一样,只是删除页面重新加载。