Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从javascript两个数组到php变量和值_Javascript_Php_Jquery - Fatal编程技术网

从javascript两个数组到php变量和值

从javascript两个数组到php变量和值,javascript,php,jquery,Javascript,Php,Jquery,在js端,我有两个数组 arra = ['what', 'when', 'why']; arrb = ['sea', 'tomorrow', 'because of sun']; 实际上,阵列要长得多 在php端获取此信息的最短(jquery)方法是什么: echo $what; // result: sea echo $when; // result: tomorrow echo $why; // result: because of sun 创建一个对象,其关键帧是arra中

在js端,我有两个数组

arra = ['what', 'when', 'why'];

arrb = ['sea', 'tomorrow', 'because of sun'];
实际上,阵列要长得多

在php端获取此信息的最短(jquery)方法是什么:

echo $what; // result: sea

echo $when;  // result: tomorrow

echo $why;  //  result: because of sun

创建一个对象,其关键帧是
arra
中的值,而值来自
arrb
。然后将其作为
$.ajax()
中的
数据
选项传递

或者更一般地说:

foreach ($_POST as $key => $value) {
    echo "$key: $value<br>";
}
foreach($\u发布为$key=>$value){
回显“$key:$value
”; }
如注释中所述,您可以使用AJAX将变量发布到您在AJAX函数的URL声明中定义的给定页面

AJAX函数的示例:

<script>
arra = ['what', 'when', 'why'];
arrb = ['sea', 'tomorrow', 'because of sun'];

$.ajax({
    type : "POST",
    url : "your_file.php",
    data : {
            arra : arra
            arrab : arrab
    },
    success: function (html) {
        //Success handling
        //do something on success
    }
})
</script>
现在,您有多种方法来处理阵列,具体取决于您想对阵列执行的操作

一种方法是在数组中循环,并检索每个索引<例如,code>foreach(),
for()
while()

<?php
foreach ($arra as $key => $value) {
    echo 'value: '.$value.'<br>';
}
?>

<?php
foreach ($arrb as $key => $value) {
    echo 'value: '.$value.'<br>';
}
?>

在小的情况下,例如您面临的情况下,您通常也可以单独访问每个数组索引

<?php
$what = $arra['what'];
$when = $arra['when'];
$why = $arra['why'];

$sea = $arrb['sea'];
$tomorrow = $arrb['tomorrow'];
$because_of_sun = $arrb['because of sun'];
?>

然而,我发现这是一种普遍的错误做法,因为您更愿意使用自动化程度更高的解决方案,因为这是您处理更大数据的首选方法


另一种解析数据的方法是通过
GET
方法。PHP方法将是相同的,除了使用
$\u POST
检索数据之外,您必须使用
$\u GET
。还要注意的是,
GET
变量将在URL中可见,而
POST
变量则不可见。

到目前为止您尝试了什么?如果您想将js变量发送到后端,可以使用ajax或执行经典的POST和/或GET。@Eddie,当然,这应该通过ajax来完成,但是如何跨两个数组来获得
var name/var value
对。没有区别。这一切都取决于您希望如何在以后使用/访问阵列。例如,一旦数组作为PHP变量被解析和检索,您就可以选择对数组执行
explode()
,以获取单个索引,或者使用循环。我可能会建议一种更通用、更自动化的数组处理方法。根据具体情况,手动调用每个索引可能会有很大的问题。@Martin,
foreach
是你的意思吗?@port可以使用任何能够在数组中运行的循环格式,是的,
foreach()
是一种方法。这只是一个更好的解决方案,因为在数据越来越大的情况下,这将是一个更好的方法。现在,在简单的情况下,比如这里介绍的情况,调用每个单独的索引是很好的,但是从长远来看,了解更自动化的过程将更有利于OP。
<?php
$arra = $_POST['arra'];
$arrb = $_POST['arrb'];
?>
<?php
foreach ($arra as $key => $value) {
    echo 'value: '.$value.'<br>';
}
?>

<?php
foreach ($arrb as $key => $value) {
    echo 'value: '.$value.'<br>';
}
?>
<?php
$what = $arra['what'];
$when = $arra['when'];
$why = $arra['why'];

$sea = $arrb['sea'];
$tomorrow = $arrb['tomorrow'];
$because_of_sun = $arrb['because of sun'];
?>