如何在同一个PHP页面,通过ajax把值传给PHP变量

如何在同一个PHP页面,通过ajax把值传给PHP变量,第1张

举个例子:你想在用户点击时,把 apple 这个字符串,通过前端传给后端。

前端,用 jQuery 举例:

$('button')click(function () {

$ajax({

url: '/xxx',

method: 'post',

dataType: 'json',

data: {fruit: 'apple'}

})done(function (res) {

// 成功后的回调

})fail(function (err) {

// 失败后的回调

});

});

后端 PHP 处理:

$fruit = $_POST['fruit']; // 获取从 ajax 传过来的 fruit 的值,这里是 apple。

如果你想在前端重新显示这个字符串 apple,那么你要用 PHP 把数据返回给页面,然后在上面 “// 成功后的回调” 里面,补充逻辑代码。

例如 PHP 把 apple 返回给前端:

return json_encode(array('fruit' => 'apple'));

前端回调处理:

// 成功后的回调

alert(resfruit); // d框显示 “apple”

实际上,$_POST 能够获取所有从前端用 post 方式提交过来的数据,不管你是页面刷新方式,还是 ajax(jQuery 才叫 ajax,实际上它是 XML>

直接调用不可能,但可以绕过去调用

aphp

<php

$_token = md5(time());//令牌

$_SESSION['_TOKEN'] = $_token;

//

>

<html>

<form>

<input name="_TOKEN" value="<php print $_token; >">

//这里说一下令牌,令牌一般是服务器端验证提交数据是否为合法

//与验证码功能差不多,不过验证码需要手动输入,这个是程序内部使用

处理post

<php

if($_POST['_TOKEN'] == $_SESSION['_TOKEN'])

{

$_SESSION['_TOKEN'] = '';//清除令牌,防止网络延缓的再次提交。

}

>

然后是ajax

上面我为什么要在你原来的程序上加入令牌呢,因为可以随意的调用php函数是很不安全的,很容易被有心人利用,所以做一点安全保护,当然不一定绝对安全

function _new_ajax()

{

//创建XML>

可以利用 PHP 预定义的 $_POST 变量用于获取来自 method="post" 的表单中的值 或 来自 ajax post 请求发来的值;例如下例所示:

利用 ajax 进行提交:$post(url,{name:'xxx'},callback);

那么,在服务器的后台的PHP代码中,可以利用 $_POST 来获取ajax传递的值;

$name = $_POST['name'];

同样可以使用预定义的 $_GET 和 $_REQUEST 变量来接收传递的值;其中,$_GET 来接受 get 请求的传递值;$_REQUEST 用来接收包括 POST 、GET 的两者所有的传递值。

请注意,需要对传递过来的值进行过滤,确保传递的值不会引起SQL注入或xss攻击。

帮你调试了一下你的代码,发post请求,,数据的格式是:'name=zhangsan&age=18' ,这种字符串格式的,所以你要把你的 var senddata="4"; 改成 var senddata="senddata=4";

php 部分,

$getDeviceID=$_POST[senddata];

改成$getDeviceID=$_POST['senddata'];

接收的参数需要加上单引号。

另外如果是jquery就比较简单了,去jquery官网下载jq331然后引入

php部分

<php

echo json_encode($_POST,320);

>

html部分

<html>

<head>

<script src="jquery-331minjs"></script>

</head>

<body>

<script>

function freshdata(){

    $ajax({

        url: "testphp",//提交地址

        type: "post",//提交方式

        dataType:'json',

        data:{

            'senddata':4,

            //如果在加其他参数

            'name':'张三',

            'age':20,

        },

        success: function(ret) {//msg 返回值

            alert('senddata:'+retsenddata+'\n姓名:'+retname+'\n年龄:'+retage);

        }

    });

}

</script>

<span onclick="freshdata()">点击发送ajax请求</span>

</body>

</html>

效果图

以上就是关于如何在同一个PHP页面,通过ajax把值传给PHP变量全部的内容,包括:如何在同一个PHP页面,通过ajax把值传给PHP变量、js获取到的值如何用ajax传到php中、ajax调用PHP类库中的函数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/10129757.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存