Javascript数组未完全分配给php数组

Javascript数组未完全分配给php数组,javascript,php,arrays,get,Javascript,Php,Arrays,Get,下面是我的javascript数组内容。我使用get调用将其传递到php页面。我还将其他数组与此数组一起传递。这些数组值被完全传递。只有此数组正在传递部分值。我还用javascript警告了它,并在那里完成了警告。而在php中,它只取2个值,而不是14个值 var testPlanNameArray= ["Eligibility-Real Time Eligibility Cascading Validation", "Eligibility-SubmitterRouting", "Eligib

下面是我的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);
?>

我尝试了$testPlanNameArray=json_解码($_GET['testPlanNameArray']);但它仍然没有获得完全的价值。问题只与此数组有关。对于rest数组,它工作正常。

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

$.get("dbValidation.php", {
    testIDArray: testIDArray,
    testPlanNameArray: testPlanNameArray,
    errorArray: errorArray,
    historyErrorDescArray: historyErrorDescArray,
    expectedDEPProp: expectedDEPProp,
    actualDEPProp: actualDEPProp
}).done(...)
这种编码实际上会在
$\u GET
参数中创建数组,因此根本不需要使用
explode()
json\u decode()


请注意,URL参数的长度通常有限制,通常为1024或2048。因此,尝试在URL上传递长数组可能无法正常工作。您应该使用具有更高限制的
$.post

var\u dump($\u GET)
显示了什么?它正在打印[“资格实时资格级联验证”、“资格提交者路由”、“defth的资格别名”、“资格提交者x”、“资格提交者路由”,“资格提交者路由和合作伙伴别名”、“资格提交者路由”、“资格提交者路由和Partne”、“资格提交者路由和合作伙伴”、“资格提交者路由”、“自定义地图验证”、“自定义地图验证”、“资格实时资格自定义地图验证”资格实时资格自定义映射验证“]在控制台中。这没有意义。它应该打印一个关联数组,将所有参数名称作为键。如
“testPlanNameArray”=>数组(15)(…)
感谢您回复@Barmar。我现在会尝试,并在短时间内让您知道。我尝试了上述答案,并在php中使用$testIDArray=$\u GET['testIDArray'];$testPlanNameArray=$\u GET['testPlanNameArray'];/$testPlanNameArray=json_解码($\u GET['testPlanNameArray']);/$testPlanNameArray=array(explode(“,”,$\u GET['testPlanNameArray']))$errorArray=$\u GET['errorArray'];$historyErrorDescArray=$\u GET['historyErrorDescArray'];/$ErrorArrarySecond=explode(“,”,$\u GET['ErrorArrarySecond']);$expectedDEPProp=$\u GET['expectedDEPProp'];$ActualDeprop=$\u GET['ActualDeprop'];我在浏览器控制台中获得414状态这是URL太长的错误。你正在达到我提到的限制。你需要切换到POST。
$.get("dbValidation.php", {
    testIDArray: testIDArray,
    testPlanNameArray: testPlanNameArray,
    errorArray: errorArray,
    historyErrorDescArray: historyErrorDescArray,
    expectedDEPProp: expectedDEPProp,
    actualDEPProp: actualDEPProp
}).done(...)