如何在不使用ajax重新加载页面的情况下将javascript值转换为php变量

时间:2018-01-12 05:05:58

标签: javascript php jquery html

我希望在不使用任何POST或GET方法的情况下,从 JavaScript PHP 变量获取值。

我在这里提供HTML代码:

<input type="number" name="days" id="days" class="col-sm-2 form-control" placeholder="DAYS"> 

<input type="number" name="night" id="night" class="col-sm-2 form-control" placeholder="NIGHT"> 

<button id="generate" onclick="GetValue()" class="btn btn-danger">Generate</button>

Javascript代码

<script>
$(function(){
    $("#generate").on('click', function(){
        var days = $("#days").val();
        var night=$("#night").val();
        var base_url = $('#base').val();
        $.ajax({
        type: 'post',
        url: base_url,
        data: {'days' : days, 'night': night}, 
        success: function( data ) {
        console.log(data);
        }
      });
    });
  });
</script>

php code

<?php
$days = $_POST['days']; 
$night = $_POST['night'];
echo $days . " " . $night;
?>

变量值不起作用。有人帮我解决了这个问题。

谢谢,

3 个答案:

答案 0 :(得分:1)

你不能直接将javascript变量分配给PHP变量,这就是使用ajax的原因。

如果你想在没有页面刷新的情况下对服务器端执行客户端变量的操作并使用相同的页面,那么你需要在客户端的任何启动和使用退出之前在页面顶部编写PHP代码在PHP响应完成后中断。并且在jquery中,ajax忘记了URL部分,因为您正在使用相同的页面进行请求和响应。

注意:确保包含jQuery

覆盖表单标记中的所有元素,以便我们可以使用serialize方法简单地发送数据。

的index.php

<?php
    if(isset($_POST) && !empty($_POST['days'])){
        $days = $_POST['days']; // you can write the variable name same as input in form element.
        $night = $_POST['night'];

        //Perform any operations on this variable and send in response whatever you want it will send the response to success function of jquery ajax and you can check response in `data`

        echo $days . " " . $night;
        exit();
    }
?>


<!--<form id='frmsbmt' method='post' action='#'>-->

    <input type="number" name="days" id="days" class="col-sm-2 form-control" placeholder="DAYS"> 

    <input type="number" name="night" id="night" class="col-sm-2 form-control" placeholder="NIGHT"> 

    <button id="generate"  class="btn btn-danger">Generate</button>
<!--</form>-->
<script>
    $(function(){
        $("#generate").on('click', function(){
            var days = $("#days").val();
            var night=$("#night").val();
            var base_url = $("#base").val();
            $.ajax({
                type: 'post',
                //url: base_url,
                data: {'days' : days, 'night': night}, //$("#frmsbmt").serialize(), //form serialize will send all the data to the server side in json formate, so there is no need to send data seperately.
                success: function( data ) {
                    console.log(data);
                    //alert(data);
                    // It will write the response in developer tools console tab or you can alert it.
                }
            });
        });
    });
</script>

答案 1 :(得分:0)

您可以使用AJAX调用。

function GetValue() {
    var str = document.getElementById('days').value;
    $.ajax({
        type: 'post',
        url: 'text.php',
        data: {
            someValue: str
        },
        success: function( data ) {
            console.log( data );
        }
    });
}

答案 2 :(得分:0)

要回答您的问题而不使用任何帖子或获取方法来检索变量是不可能的。一种语言是服务器端语言,一种语言是客户端语言,如果两种语言从不通过已建立的标准进行通信,则在两者之间传递变量的协议是不可能的。 PHP是服务器端的翻译,这意味着客户端接口并不真正知道它存在,除非有一个绑定到方法即get或post的操作。 Ajax请求使用POST或GET或其他已建立的方法之一进行通信。