首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将隐藏字段转换为PHP数组

将隐藏字段转换为PHP数组
EN

Stack Overflow用户
提问于 2017-01-28 02:47:24
回答 4查看 320关注 0票数 0

我需要些帮助。我在html代码中包含了这个隐藏字段,并且在javascript中作为数组添加了一个值。在我的php代码中,我希望获得隐藏字段的值,并将其视为php数组。不过,这对我不起作用。相反,它将整个价值视为一体。如何将隐藏字段作为值转换为php数组,并在特定索引处打印值。

这是我隐藏字段的代码

代码语言:javascript
运行
复制
<form name = "wall" action="Respon.php" method="post">
<fieldset>
    <input type="hidden" name ="widths[]" id ="widths" value="" />
    <input type="hidden" name ="lengths[]" id ="lengths" value="" />
</fieldset>

这是javascript代码,我在其中向隐藏字段添加了一个值。

代码语言:javascript
运行
复制
widthL.push(Number(widths));
lengthL.push(Number(lengths));

$("#widths").val(widthL);
$("#lengths").val(lengthL);

如您所见,我正在将这些值转换为一个数字,因为我是从输入文本字段中获取值的。

这是用于获取隐藏字段值的php代码。

代码语言:javascript
运行
复制
<?php

$index = 0;

$widthlist = array();
$lengthlist = array();

$widths = $_REQUEST['widths'];
$lengths = $_REQUEST['lengths'];

array_push($widthlist, $widths);
array_push($lengthlist, $lengths);

$count = count($widthlist);

foreach ($widthlist as $w => $value) {
   echo $widthlist[$index];
   echo "<br />";
}

for($x = 0; $x < $count; $x++) {

   echo $widthlist[$x];
   echo "<br />";
}
?>

我尝试了上述两种方法,但都没有效果。它将它们全部打印在同一行上,作为一个值。

有人能帮帮我吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-01-28 04:01:04

我会这样做的。我认为您应该序列化这些对象,然后在服务器中取消它们的序列化。

代码语言:javascript
运行
复制
widthL.push(Number(widths));
lengthL.push(Number(lengths));

// 
var serializedwidthL = JSON.stringify(widthL);
var serializedlengthL = JSON.stringify(lengthL);
//
$("#widths").val(serializedlengthL );
$("#lengths").val(serializedlengthL );

然后,当您在服务器中检索数组时:

代码语言:javascript
运行
复制
$widthlist = json_decode($_REQUEST['widths'], true);
$lengthlist = json_decode($_REQUEST['widths'], true);

这将为您提供一个包含分隔元素的数组。

票数 0
EN

Stack Overflow用户

发布于 2017-01-28 02:56:57

我想您必须在这里使用ajax来通过php访问javascript变量。在您的代码中,在推送这些值之后,使用ajax将所需的值作为数据和脚本位置作为相同的文件。您必须通过数据字段中的json对象发送两个数组。

代码语言:javascript
运行
复制
$.ajax({
    type: "POST",
    url: "file.php",
    data: { arr2 : a2 },
    success: function() {
        alert1('ok, sent');
    }
});
票数 0
EN

Stack Overflow用户

发布于 2017-01-28 03:04:25

尝尝这个

代码语言:javascript
运行
复制
widthL.push(Number(widths));
lengthL.push(Number(lengths));
...

var tags = [];
var i;
for(i=0; i<widthL.length; i++) {
    tags.push('<input type="hidden" name="widths[]" value="'+widthL[i]+'" />');
}
for(i=0; i<lengthL.length; i++) {
    tags.push('<input type="hidden" name="lengths[]" value="'+lengthL[i]+'" />');
}
$("fieldset").html(tags.join(" "));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41905855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档