Javascript数组没有完全分配给php数组

标签 javascript php arrays get

下面是我的 JavaScript 数组内容。我使用 get 调用将其传递给 php 页面。我还将其他数组与该数组一起传递。这些数组值已完全传递。只有这个数组传递部分值。我还在 javascript 中提醒了它,并在那里完成了它。而在 php 中它只采用 2 个值而不是 14 个。

var testPlanNameArray= ["Eligibility-Real Time Eligibility Cascading Validation", "Eligibility-SubmitterRouting", "Eligibility alias for defth", "Eligibility-Submitter x", "Eligibility-SubmitterRouting", "Eligibility-SubmitterRouting & Partner alias", "Eligibility-SubmitterRouting", "Eligibility-SubmitterRouting & Partne", "Eligibility-SubmitterRouting & Partner", "Eligibility-SubmitterRouting ", "Custom Maps Validation", "Custom Maps Validation", "Eligibility-Real Time Eligibility Custom Maps Validation", "Eligibility-Real Time Eligibility Custom Maps Validation"];

我将使用下面的代码传递给 php

$.get("dbValidation.php?&testIDArray=" + testIDArray + "&testPlanNameArray=" + testPlanNameArray + "&errorArray=" + errorArray + "&historyErrorDescArray=" + historyErrorDescArray  + "&expectedDEPProp=" + expectedDEPProp  + "&actualDEPProp=" + actualDEPProp).done(function(data3) {
                                // alert(testPlanNameArray);
                                        console.log(data3);
                                        console.log(testPlanNameArray);
                            });

在 php 页面中我只是在做

<?php
$testPlanNameArray = explode(",", $_GET['testPlanNameArray']);
print_r($testPlanNameArray);
?>

当我执行 console.log(data3) 时,它将打印

Array
(
    [0] => Eligibility-Real Time Eligibility Cascading Validation
    [1] => Eligibility-SubmitterRouting 
)

我尝试了 $testPlanNameArray = json_decode($_GET['testPlanNameArray']);但它仍然没有发挥全部值(value)。问题仅在于该数组。对于其余数组,它工作正常。

最佳答案

可能存在编码问题。我建议您将一个对象传递给 $.get,它会对其进行正确编码。

$.get("dbValidation.php", {
    testIDArray: testIDArray,
    testPlanNameArray: testPlanNameArray,
    errorArray: errorArray,
    historyErrorDescArray: historyErrorDescArray,
    expectedDEPProp: expectedDEPProp,
    actualDEPProp: actualDEPProp
}).done(...)

此编码实际上会在 $_GET 参数中创建数组,因此您不需要使用 explode()json_decode() 完全没有。

请注意,URL 参数的长度通常有限制,通常为 1024 或 2048。因此尝试在 URL 上传递长数组可能效果不佳。您应该使用 $.post,它的限制要高得多。

关于Javascript数组没有完全分配给php数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53689441/

相关文章:

JavaScript URL 解码功能

php - 如何使用 eloquent/fluent 从单个查询中插入多行

java - 创建继承对象的数组

arrays - 在 VBA 函数中从范围切换到数组并返回

javascript - 在 WinJS 导航应用程序的新页面中显示 ListView 控件中所选项目的详细信息

javascript - 在引导模式的不同选项卡上显示 laravel 身份验证错误

javascript - 如何使用 OnClick 更改图像?

php - MySQL 复制 - 我应该从客户端代码 (PHP) 处理负载平衡吗?

php - 从字符串中删除变音符号

Java 将字符串拆分为数组