我有一个php文件,其中包含如下数组。
$selectShiftarray = array();
$shift=$_POST['selectShift'];
if ($shift)
{
foreach ($shift as $value)
{
array_push($selectShiftarray,$value);
}
}
我需要访问AJAX中的$ selectShiftarray,将值传递给另一个php文件。
$.ajax({
type: 'POST',
url: '../c/sampleTest.php', //data: {data = <?php $POST['selectShift'] ?> },//"id=78&name=Allen",
dataType: 'json',
success: function (json) {
//alert('successful');
$.plot($("#placeholder"), json, {
series: {
stackpercent: true,
bars: {
show: true,
barWidth: 0.6,
align: "center"
}
},
xaxis: {
tickSize: 1
},
yaxis: {
max: 100,
tickFormatter: function (v, axis) {
return v.toFixed(axis.tickDecimals) + '%'
}
}
});
}
});
我试图将AJAX数据库中的数组值传递给sampleTest.php来执行计算。
如果我直接在两个php文件之间传递数组值,我想在当前的php文件中包含sampleTest.php。我的要求是,我不应该在任何php文件中包含sampleTest.php文件,因此我选择了AJAX的POST方法。但我无法将数组传递给sampleTest.php文件。由于我是AJAX的新手,我无法解决这个问题。任何人都可以帮我解决这个问题。
答案 0 :(得分:0)
将$ selectShiftarray数组打印成AJAX代码,通过AJAX将其发送到../c/sampleTest.php:
function sendArrayToPHP(phpFile, parameterName, jsArray) {
$.ajax({
url: phpFile,
async: false, // Depending on what you want
type: "POST",
data: { parameterName : JSON.serialize(jsArray) }
}).done(function( data ) {
// Sent!
});
}
var arrayExample = $.parseJSON("<?=$selectShiftarray?>"); // This way
// You can modify here the array if you want using JavaScript
sendArrayToPHP("../c/sampleTest.php", "arrayParameter", arrayExample);
从../c/sampleTest.php接收数组(解码JSON):
$selectShiftArray = json_decode($_POST['arrayParameter'], true);
答案 1 :(得分:0)
感谢axelbrz和Bergi的指导帮助我解决了这个问题,这对我来说很有用,
这是我在Controller中的AJAX代码:
<script type="text/javascript">
$(document).ready(function(){
var jsonobj = <?php echo json_encode($selectShiftarray); ?>;
$.ajax({type:'POST',url:'../c/sampleTest.php', data : { shift : jsonobj } ,
dataType: 'json',
success:function(json){
//alert('successful');
$.plot($("#placeholder"), json, {
series: {
stackpercent: true,
bars: { show: true, barWidth: 0.6, align: "center" }
},
xaxis: {tickSize : 1},
yaxis:{max:100, tickFormatter: function(v,axis){ return v.toFixed(axis.tickDecimals)+'%'}}
});
}
});
});
</script>
<div id="placeholder" style="width:600px;height:300px; top: -401px; left: 500px;">
</div>
我的sampleTest.php代码,它接收控制器发送的数组并对其进行处理。
$selectShiftarray = array();
$shift=$_POST['shift'];
if ($shift)
{
foreach ($shift as $value)
{
array_push($selectShiftarray,$value);
}
}