我需要一些帮助。我在我的html代码中有这个隐藏字段,我在javascript中添加一个值作为数组。在我的PHP代码中,我想获取隐藏字段的值并将其视为php数组。然而,这对我不起作用。相反,它将整个价值视为一个整体。如何将隐藏字段作为值转换为php数组,并在特定索引处打印出值。
以下是我的隐藏字段的代码
<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代码
widthL.push(Number(widths));
lengthL.push(Number(lengths));
$("#widths").val(widthL);
$("#lengths").val(lengthL);
正如您所看到的,我正在将这些值转换为数字,因为我从输入文本字段中获取了我的值。
这是获取隐藏字段值的php代码。
<?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 />";
}
?>
我尝试了上述两种方法,但没有任何工作。它将所有这些打印在同一行上作为一个值
有人可以帮助我吗
答案 0 :(得分:0)
我想你必须在这里使用ajax来通过php访问javascript变量。在您的代码中,在推送值之后,使用带有所需值的ajax作为数据和脚本位置作为同一文件。 您必须通过数据字段中的json对象发送两个数组。
$.ajax({
type: "POST",
url: "file.php",
data: { arr2 : a2 },
success: function() {
alert1('ok, sent');
}
});
答案 1 :(得分:0)
试试这个
Address Position - Beginning of the Vector Position
答案 2 :(得分:0)
一个选项是@aimadnet建议,为每个值添加一个字段。原因是为了让PHP将字段解析为数组,您必须为每个值发布一次字段,所有值都相等,以[]
结束。
我的建议是代码较少的替代方案。如果您确定了这些值(要么生成它们还是验证用户的输入),您可以将它们作为字符串发送,只有一个隐藏字段。
<input type="hidden" name ="widths" id ="widths" value="" />
<input type="hidden" name ="lengths" id ="lengths" value="" />
$("#widths").val(widthL.join("|")); //or any other separator
$("#lengths").val(lengthL.join("|"));
$widths = explode('|',$_REQUEST['widths']);
$lengths = explode('|',$_REQUEST['lengths']);
//TODO validate as numbers. You should validate them with any other method anyways
答案 3 :(得分:0)
我会这样做。我认为你应该序列化这些对象,然后在服务器中反序列化它们。
widthL.push(Number(widths));
lengthL.push(Number(lengths));
//
var serializedwidthL = JSON.stringify(widthL);
var serializedlengthL = JSON.stringify(lengthL);
//
$("#widths").val(serializedlengthL );
$("#lengths").val(serializedlengthL );
然后当你在服务器中检索你的数组时:
$widthlist = json_decode($_REQUEST['widths'], true);
$lengthlist = json_decode($_REQUEST['widths'], true);
这将为您提供一个包含分隔元素的数组。