将 JavaScript/JSON 变量发送到 PHP SQL 请求

send javascript/json variable to a php sql request

提问人:user8045351 提问时间:2/23/2018 更新时间:2/23/2018 访问量:33

问:

我正在使用带有 serverSide 选项的 datatables,但我想将一个 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>

JavaScript PHP JSON 数据表 服务器端

评论


答:

0赞 Rushikumar 2/23/2018 #1

使用 $_SESSION

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

(邮政)例:

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

例:

$_SESSION["javascriptVariableValue"] = $_POST['someVariable'];
  1. 从这一点开始(即在请求成功完成时),您的变量将具有可访问的值,您可以稍后处理index.php$_SESSION

注意:

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

  2. 切勿在未进行消毒的情况下直接访问 _POST 美元,---仅出于示例目的和让您继续前进而显示!

  3. index.phpprocessValue.php中,请确保这样做session_start();

评论

0赞 user8045351 2/23/2018
我试过了这个,但会话变量不会为每一行更新,它总是采用第一个值。我需要在每次行调用时更新会话变量
0赞 Rushikumar 2/23/2018
@user8045351 您应该每行进行更新调用,然后...至于存储值:您可以将其作为数组存储到您的...键值对;key 将是行的 ID,例如...然后,当查找时间到来时,只需使用键从$_SESSION$_SESSION
0赞 user8045351 2/23/2018
//processValue.php <?php session_start(); $_POST['someVariable']=filter_var($_POST['someVariable'], FILTER_SANITIZE_STRING); $_SESSION["javascriptVariableValue"] = $_POST['someVariable']; ?> //index.php $.ajax({ method: "POST", url: "processValue.php", data: { someVariable: jsonData.data[i][0] } }); <?php echo $_SESSION["javascriptVariableValue"]; ?>这是正确的@Rushikumar
0赞 Rushikumar 2/23/2018
@user8045351 请看filter_input示例: 。另请查看 Sanitize 过滤器filter_input(INPUT_POST, 'someVariable')
0赞 user8045351 2/23/2018
我尝试了您的解决方案,但会话变量仍然只保存所有行的第一个值,@Rushikumar可能有什么问题?