多个同名文本区域和 PHP 处理

发布于 2024-11-18 04:59:53 字数 571 浏览 0 评论 0原文

我有一个动态表单,可以在其中添加和删除文本区域。 textareas 的名称是 MyTextarea[]

<textarea style="display:inline;" name="MyTextarea[]"></textarea>
<textarea style="display:inline;" name="MyTextarea[]"></textarea>

所以当我想用 PHP 处理这个 textarea 时我正在做一个:

echo $_POST['MyTextarea'];

所以一个 Array 显示在屏幕上,到目前为止还可以

所以我做了一个 < code>print_r($_POST['MyTextarea']); 并且我再次得到相同的结果:Array

我想知道是否可以有许多同名的文本区域使用 [] 生成数组。

如果可能的话我该怎么做,或者我的代码有什么问题。

谢谢

I have a dynamic form in which i can add and remove textarea.
The name of textareas is MyTextarea[]

<textarea style="display:inline;" name="MyTextarea[]"></textarea>
<textarea style="display:inline;" name="MyTextarea[]"></textarea>

So when I want to treat this textarea with PHP i'm doing a :

echo $_POST['MyTextarea'];

So a Array is display on the screen, up to now it's ok

So I do a print_r($_POST['MyTextarea']); and I have again the same result : Array

I want to know if it's possible to have many textarea with same name with [] to generate an array.

If it's possible how can I do, or what's wrong with my code.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

隔岸观火 2024-11-25 04:59:53

是的,在 php 中,如果您有一个名称类似于“MyTextarea[]”的输入字段,则会将其作为数组发布。

因此,如果你想访问你的数据,你必须这样做:

echo $_POST['MyTextarea'][0]; 

如果你有多个同名的文本区域,你将得到一个数组,其中每个索引都有一个文本区域。表单中的第一个文本区域是

您可以执行的

foreach ($_POST['MyTextarea'] as $textarea){
//do wat you need
}

数组中的第一个文本区域,如果您需要动态添加多个文本区域,这显然是一个杀手级功能。

Yes, in php if you have an input field with a name like this "MyTextarea[]" is posted as an array.

So if you want to access your data, you have to do:

echo $_POST['MyTextarea'][0]; 

If you have multiple textareas with the same name, you'll get an array where each index has one textarea. The first textarea in the form is the first textarea in the array

you could do

foreach ($_POST['MyTextarea'] as $textarea){
//do wat you need
}

This is obviously a killer feature to use if you need to add multiple textareas dinamically.

星軌x 2024-11-25 04:59:53

你使用的是哪种框架,我很确定有一些东西在某个时刻将你的数组转换为字符串,也许对 POST 变量进行处理,如下所示:

foreach ($_POST as $key => $value) {
    if ($value && !$is_magic_quotes_gpc) {
        $_POST["$key"] = addslashes($value);
    }

在这种情况下,你必须删除这个功能...
为了确定我在说什么,您可以尝试 var_dump($POST[MyTextarea]) =>string 'Array' (length=5) (应该是一个数组)

Which kind of framework are you using, I'm quite sure there is something at one point that is casting you're array into a string, maybe something that apply a treatment on POST variable like this:

foreach ($_POST as $key => $value) {
    if ($value && !$is_magic_quotes_gpc) {
        $_POST["$key"] = addslashes($value);
    }

In this case you've to remove this function...
To be sure of what I'm talking about, you can try a var_dump($POST[MyTextarea]) =>string 'Array' (length=5) (should be an array)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文