视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
如何把js变量值传到php
2020-11-27 19:33:45 责编:小采
文档
这篇文章主要介绍了关于如何把js变量值传到php,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

一、总结

一句话总结:传参数去后台,用ajax,或者原生js方式拼接url。明白原理,洞悉系统是先解析php,再执行html代码和js代码。

二、用ajax

1. 页面提交数据: ajax

2. php页面获取参数: $val = $_POST['val']

参考代码(jquery):

$.ajax({
type: 'POST',
url: 'save.php',
data: {val: text1obj.value}
success: function(msg){// msg: php返回内容/* alert(修改成功); */window.location = window.location;
},
error:function(msg){// 提交失败}
});

问题:

<SCRIPT LANGUAGE="JavaScript">
var bid=document.fenlei.bfenlei.value;
<?php
$sql1="select * from s_type where b_id='$bid'";
//.......
?>
</SCRIPT>


如上代码,如何把document来的bid值传递到下面PHP语句的bid????

解答:

不用AJAX,最简单就是传个参数过去
如:function saveGame(str){
 window.location.href='url?str=' + str;
}

楼上的是一种跳转的方式。如果你想不刷新处理,获取数据。还是用ajax 。很简单的。给你个例子。这里我我用jquery的$.post
 $.post(URL,{参数1:alue,参数2:value2},function(data){
 //这里你可以处理获取的数据。我使用是json 格式。你也可以使用其它格式。或者为空,让它自己判断得了
},'json');

一个是服务器端的,一个是客户端的。

当然不行。

我不明白你为什么要用js来传值。

你直接用url参数像这样: test.php?bid=1 不行吗?

用js来实现比较麻烦,因为你打开网页是先执行php后执行js的。也就是说不管你js放在哪都是执行完了php再执行js。

如果你硬是要用js向php传值这种方式的话那就要用到ajax,这要知道你的具体要求才行。

用AJAX 发送到后台
proytype方法:

function changeshow()
{
var bid=document.fenlei.bfenlei.value;
var url = 'adm_mod_ajax.php';
var pars = 'mtype=1&mid=' + mid+'&bid='+bid;
var myAjax = new Ajax.Request(
url,
{method: 'post', parameters: pars, onComplete: showResponse}
);
}

三、洞悉系统是先解析php,再执行其它代码下的字符串拼接

这样可以

<script>
 function dailyTask(){
 $('#my_daily_task_calendar').datepicker().on('changeDate.datepicker.amui', function(event) {
 var dailyTaskDate=$(this).val();
 var url1="{:url('task/getDailyTaskData')}";
 var url2='?dailyTaskDate='+dailyTaskDate;
 document.location=url1+url2;
 });
 }
 dailyTask();
</script>

apache服务器在页面载入的时候会先翻译 7 var url2='?dailyTaskDate='+dailyTaskDate; 这句话。把php翻译完了就交给浏览器。

这样不行,因为php咸鱼js执行,所以js中的dailyTaskDate变量会找不到,所以php中报常量错误。

var dailyTaskDate=$(this).val();
document.location={:url('task/getDailyTaskData',array('dailyTaskDate'=>dailyTaskDate))};

四、ajax回调函数中刷新页面方法

在做demo的时候回调函数不想很麻烦,只是单纯的刷新下页面就可以用location.reload(true); 这句话相当于F5键刷新页面,这样做的方法可能会耗费一定资源,但是刷新页面还是很方便的。

下面代码可以实现ajax刷新页面,然而并没有什么用

<script>
 function dailyTask(){
 $('#my_daily_task_calendar').datepicker().on('changeDate.datepicker.amui', function(event) {
 var dailyTaskDate=$(this).val();
 $.post("task/getDailyTaskData", { dailyTaskDate:dailyTaskDate}, function () {
 document.location.reload();
 });
 });
 }
 dailyTask();
</script>

下载本文
显示全文
专题