将返回变量从ajax传递给php

时间:2015-06-08 06:21:18

标签: php ajax

这是我的ajax代码,如果我使用id显示效果很好。

$("#masa").change(function() 
    { //if theres a change in the nokakitangan textbox

        var masa = $("#masa").val();
        var tkh_kerja = $("#tkh_kerja").val();
        //Get the value in the nokakitangan textbox

        if(tkh_kerja=='')
        {
            $("#cek_tarikh").html('<font color="Red"> &nbsp; Sila Isi Maklumat Tarikh Mula Bekerja </font>');
        }

        else
        {
            $("#cek_tarikh").html('<align="absmiddle">&nbsp;Cek Tarikh Akhir...');
            $.ajax
            ({  //Make the Ajax Request
                type: "POST",  
                url: "ajax_cek_tarikhakhir.php",  //file name
                data: "bulan="+ masa +"&tkh_kerja="+tkh_kerja,  //data
                success: function(cekmasa)
                { 
                    $("#cek_tarikh").ajaxComplete(function(event, request)
                    { 
                         $("#cek_tarikh").val(cekmasa);

                    });
                }
            });
        }

        return false;
    });

问题是,'cekmasa'值是否可以传递给php。我需要使用该值在PHP中执行一些代码。是否可以从ajax获取数据?在同一页面。

我在

中返回值时没有问题
<input align='right' type="text" name="tkh_akhir" maxlength="3" id="cek_tarikh" class="span2" readonly/>

3 个答案:

答案 0 :(得分:1)

不,那是不可能的。
一旦您的PHP页面被服务器处理,它就会将生成的输出发送到客户端。除非您重新加载页面或转到浏览器中的其他页面,否则不会执行PHP。

其他信息:那些开始使用ajax的人经常会感到困惑。你使用ajax,因为你想要一些“实时行为”而不必重新加载整个html页面。但是ajax仍然由您的浏览器在客户端执行。

简化了您想要通过浏览器和服务器之间的通信ajax实现的目标:

client(browser) <- ajax -> server(PHP)


但你要求的是这样的:

server(PHP) <- ajax -> server(PHP)

哪个不起作用,如果你考虑它就没有意义。

答案 1 :(得分:0)

你可以调用另一个ajax函数在成功响应中使用php文件,如下所示

$("#masa").change(function() 
    { //if theres a change in the nokakitangan textbox

        var masa = $("#masa").val();
        var tkh_kerja = $("#tkh_kerja").val();
        //Get the value in the nokakitangan textbox

        if(tkh_kerja=='')
        {
            $("#cek_tarikh").html('<font color="Red"> &nbsp; Sila Isi Maklumat Tarikh Mula Bekerja </font>');
        }

        else
        {
            $("#cek_tarikh").html('<align="absmiddle">&nbsp;Cek Tarikh Akhir...');
            $.ajax
            ({  //Make the Ajax Request
                type: "POST",  
                url: "ajax_cek_tarikhakhir.php",  //file name
                data: 
                 {
                   bulan:masa,
                   tkh_kerja:tkh_kerja
                     },  //data
                success: function(cekmasa)
                { 
                    $("#cek_tarikh").ajaxComplete(function(event, request)
                    { 
                         $("#cek_tarikh").val(cekmasa);
           $.ajax
            ({  //Make another Ajax Request
                type: "POST",  
                url: "",  //file name
                data: 
                 {

                     },  //data
                success: function()
                { 
                }
                });

                    });
                }
            });
        }

        return false;
    });

答案 2 :(得分:0)

你可以做一件事。您可以在php会话或cookie中存储ajax响应,然后只需在ajax响应上刷新页面。

 //File: ajax_cek_tarikhakhir.php
 // Your ajax handling code.
 if(isset($__SESSION('ckmasa')){
    $ckmasa = $__SESSION('ckmasa');     
    // use this $ckmasa for your php
 }

 $ckmasa = $output; // $ckmasa have data which you send to ajax response.
 $__SESSION['ckmasa'] = $ckmasa;
 echo $ckmasa;
 return;

对于你的jQuery。请执行以下操作。

$(&#34;#湿润粉糊&#34)。变化(()的函数     {//如果nokakitangan文本框中的更改

    var masa = $("#masa").val();
    var tkh_kerja = $("#tkh_kerja").val();
    //Get the value in the nokakitangan textbox

    if(tkh_kerja=='')
    {
        $("#cek_tarikh").html('<font color="Red"> &nbsp; Sila Isi Maklumat Tarikh Mula Bekerja </font>');
    }

    else
    {
        $("#cek_tarikh").html('<align="absmiddle">&nbsp;Cek Tarikh Akhir...');
        $.ajax
        ({  //Make the Ajax Request
            type: "POST",  
            url: "ajax_cek_tarikhakhir.php",  //file name
            data: "bulan="+ masa +"&tkh_kerja="+tkh_kerja,  //data
            success: function(cekmasa)
            { 
                $("#cek_tarikh").ajaxComplete(function(event, request)
                { 
                     $("#cek_tarikh").val(cekmasa);
                     // Reload page
                     location.reload();
                });
            }
        });
    }

    return false;
});

我刚刚在ajax响应中重新加载了您的页面。我不知道你的服务器端代码如何。但我试着简单介绍一下。希望这能帮助你。我还没有测试过上面写的代码。抱歉我的英语不好。