Rumah > pembangunan bahagian belakang > tutorial php > javascript - js变量在PHP中怎么获取该变量?

javascript - js变量在PHP中怎么获取该变量?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2016-06-06 20:09:39
asal
1272 orang telah melayarinya

在js中定义一个变量,在PHP中怎么获取该变量?(在一个页面)

回复内容:

在js中定义一个变量,在PHP中怎么获取该变量?(在一个页面)

JS是前端,PHP是后端,后端PHP要获取前端JS的变量,那前端JS可以通过AJAX传输数据给后端PHP.比如登录页面login.php:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

<code><?php if (!defined('APP_ROOT')) define('APP_ROOT', './');

require APP_ROOT.'include/common.php'; // 加载functions.php,验证cookie等

//后端PHP使用if处理各种前端JS发出的"事件/操作/请求",处理完成exit退出

if(isset($_GET['action']) && $_GET['action']==='login') {

    if(isset($_POST['name'])

    && isset($_POST['pass'])

    && $_POST['name']==='ele'

    && $_POST['pass']===123) {

        $ret['num'] = 0;

        $ret['txt'] = '登录成功';

        echo json_encode($ret);

        exit();   

    } else {

        $ret['num'] = 1;

        $ret['txt'] = '登录失败';

        echo json_encode($ret);

        exit();   

    }

}

?>

 

<?php //下面的 "header.php + 登录表单 + footer.php" 可以考虑写一个render函数加载,从而分离界面和上面的逻辑

require 'header.php';

?>

 

<?php //下面显示登录表单(PHP+HTML+AJAX)

?>

<script src="<?php%20echo%20%24app%5B'theme_dir'%5D;%20?>/js/jquery.js"></script>

<script>

//给登录按钮绑定点击事件

$('.con').on('click', '.login', function(){

    $(this).text('正在登录');

    var context = this;

    $.ajax(

        url: 'login.php?action=login',

        type: 'POST',

        //这里就是JS传输给PHP的变量,可以通过DOM获取

        data: 'name='+$('.name').val()+'&pass='+$('.pass').val(),

        success: function(data){

            var obj = $.parseJSON(data);

            console.log(obj);

            //JS根据PHP返回值进行相应操作

            if(obj.num==0) {

                $(context).text(obj.txt);

                setTimeout(function(){

                    //1秒后跳转到首页

                    window.location.href = '/';

                }, 1000);

            } else {

                $(context).text(obj.txt);

                setTimeout(function(){

                    $(context).text('登录');

                }, 1000);

            }

        }

    );

});

</script>

 

<?php require 'footer.php';

?></code>

Salin selepas log masuk

js中通过post提交到后台:

1

2

3

4

<code>var data = {

   'param' : xxx

};

$.post(url,data,callback)</code>

Salin selepas log masuk

php后台接受数据(此处基于thinkPHP):

1

<code>$data = I('post.param')</code>

Salin selepas log masuk

前后台数据通讯用get或post就行了,js中的直接走ajax

$__POST[]

要么AJAX,要么就PHP在页面上输出变量值,JS再去获取

js 代码 ajax 推送到 test.php文件

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

<code>var xmlhttp;

if (window.XMLHttpRequest)

 {// code for IE7+, Firefox, Chrome, Opera, Safari

 xmlhttp=new XMLHttpRequest();

 }

else

 {// code for IE6, IE5

 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

 }

  

  

xmlhttp.onreadystatechange=function()

 {

 if (xmlhttp.readyState==4 && xmlhttp.status==200)

  {

  //此处处理  php 处理后返回的结果

  alert(xmlhttp.responseText);

 

   

  else{

       

 

  }

 }

xmlhttp.open("GET","test.php?id=10",true);

xmlhttp.send(); </code>

Salin selepas log masuk

php 文件

1

2

3

<code>if(isset($_GET['id'])){

echo '前台js推送过来的变量为:'.$_GET['id'];

}</code>

Salin selepas log masuk

如果是提交表单的话,好吧 ,其实大部分是将js里面的数据绑定在一个html的input中,将这个input隐藏起来,然后提交表单的时候就可以一起提交过去了~

好像大家都没有理解楼主的意思,据我所知,在不提交的情况下是实现不了吧,不过反过来js可以获取PHP输出的值。

Label berkaitan:
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan