• js变量值传到php(先把php解析成数据)


    js变量值传到php(先把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,再执行其它代码下的字符串拼接

     这样可以

     1 <script>
     2 
     3     function dailyTask(){
     4         $('#my_daily_task_calendar').datepicker().on('changeDate.datepicker.amui', function(event) {
     5             var dailyTaskDate=$(this).val();
     6             var url1="{:url('task/getDailyTaskData')}";
     7             var url2='?dailyTaskDate='+dailyTaskDate;
     8             document.location=url1+url2;
     9         });
    10     }
    11     dailyTask();
    12 </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刷新页面,然而并没有什么用

     1 <script>
     2     function dailyTask(){
     3         $('#my_daily_task_calendar').datepicker().on('changeDate.datepicker.amui', function(event) {
     4             var dailyTaskDate=$(this).val();
     5             $.post("task/getDailyTaskData", { dailyTaskDate:dailyTaskDate}, function () {
     6                 document.location.reload();
     7             });
     8         });
     9     }
    10     dailyTask();
    11 </script>
     
  • 相关阅读:
    haproxy+keepalived配置haproxy反向代理的高可用
    正则表达式
    logstash 中multiline插件的用法
    logtash 接收多配置文件
    Debian 8 升级到 9 Debian 9 How to upgrade Debian 8 Jessie to Debian 9 Stretch
    YOLO object detection with OpenCV
    快速 图片颜色转换迁移 Color Transfer Opencv + Python
    对抗网络GAN的应用实例
    nvflash 报错解决
    卷积神经网络(CNN)在语音识别中的应用
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/9307894.html
Copyright © 2020-2023  润新知