将javascript / json变量发送到php sql请求

时间:2018-02-23 13:46:14

标签: javascript php json datatables server-side

我正在使用带有serverSide选项的数据表,但我想将一个javascript变量传递给php变量,以便稍后在php sql select请求中使用它。 我需要发送该var而不刷新页面。 感谢

<script type="text/javascript">
$( document ).ready(function() {
$('#employee_grid').DataTable({
		 "bProcessing": true,
         "serverSide": true,
		 "bStateSave": true,
		 "searching": true,
		"aaSorting": [[0,'desc']],
	
         "ajax":{
            url :"response2.php", //json datasource
            type: "post",  //type of method, by default would be get

			"aoColumnDefs" : [
				 {
				   'bSortable' : true,
				   'aTargets' : [1,2,3,4,5,6,7,8,9]
				 }],
				
			"dataSrc": function (jsonData) {
			  for ( var i=0, len=jsonData.data.length ; i<len ; i++ ) {
		
			  	jsonData.data[i][1] = '<font size="4px">'+jsonData.data[i][2]+'</font>';
				<?php
        $phpvar=jsonData.data[i][2];
        $sql="SELECT * FROM clientwhere id='$phpvar'";
        ...
        ?>
			  }
			  return jsonData.data;
			},
            error: function(){  // error handling code
             // $(".employee-grid-error").html("");
              //$("#employee_grid").append('<tbody class="employee-grid-error"><tr><th colspan="3">No data found in the server</th></tr></tbody>');
              $("#employee_grid_processing").css("display","none");
            }
          }
		  
        });   
});
</script>

1 个答案:

答案 0 :(得分:0)

使用$_SESSION

  1. 从当前页面(例如 index.php ),发出jQuery $.ajax POST(或GET)请求,将JavaScript变量作为参数传递到另一个页面(例如< EM> processValue.php )。
  2. (POST)示例:

    $.ajax({
      method: "POST",
      url: "processValue.php",
      data: { someVariable: someValue }
    });
    
    1. processValue.php 中,将接收参数的值保存到PHP的$_SESSION变量
    2. 示例:

      $_SESSION["javascriptVariableValue"] = $_POST['someVariable'];
      
      1. 从此时开始(即根据请求成功完成),您的$_SESSION变量将在 index.php 中显示您可以稍后处理的值
      2. 注意:

        1. index.php和processValue.php文件名仅用于示例目的......

        2. 从不直接访问$ _POST而不进行消毒等等。这仅仅是出于示例目的而显示并让您前进!

        3. index.php processValue.php 中,请务必session_start();