0

我有一个 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 新手,我无法解决这个问题。谁能帮我解决这个问题。

4

2 回答 2

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);
于 2012-12-04T06:16:26.867 回答
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);
    }
}
于 2012-12-05T03:57:33.563 回答