提问人:user8045351 提问时间:2/23/2018 更新时间:2/23/2018 访问量:33
将 JavaScript/JSON 变量发送到 PHP SQL 请求
send javascript/json variable to a php sql request
问:
我正在使用带有 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>
答:
0赞
Rushikumar
2/23/2018
#1
使用 $_SESSION
- 从当前页面(例如index.php)发出 jQuery
$.ajax
POST(或 GET)请求,将 JavaScript 变量作为参数传递到另一个页面(例如 processValue.php)。
(邮政)例:
$.ajax({
method: "POST",
url: "processValue.php",
data: { someVariable: someValue }
});
- 在processValue.php中,将接收参数的值保存到 PHP 的变量中
$_SESSION
例:
$_SESSION["javascriptVariableValue"] = $_POST['someVariable'];
- 从这一点开始(即在请求成功完成时),您的变量将具有可访问的值,您可以稍后处理index.php
$_SESSION
注意:
index.php 和 processValue.php 文件名仅用于示例目的...
切勿在未进行消毒的情况下直接访问 _POST 美元,---仅出于示例目的和让您继续前进而显示!
在index.php和processValue.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可能有什么问题?
评论