继续求教,这回是文本框的问题了

#1 虞飞

text.jpg

这回需要批量修改一批文本框的值,每个文本框的值不一定一样(这就是我上个跳转问题的由来),在视图里,需要把文本框命名为类似text[]的样子,标志成一个数组,前面的复选框也是同样。那我的PHP代码该怎么写才能使我勾选比如第五行数据时,文本框里取得的也是第五行的数据。

该贴已经同步到 虞飞的微博

2011-07-13 23:41:29

#2 jake

复选框name=mycheckbox[]
文本框name="mytext[]"

提交后,action接收到后,就是两个有同样下标的数组($this->spArgs('mycheckbox') 和 $this->spArgs('mytext')),他们的值应该是一一对应的(当然,表单不能有别的同名元素),你可以在接收的action里面

dump($this->spArgs());

就可以看到两个数组和他们对应的值了。

2011-07-14 09:02:26

#3 chinalwb

个人见解哈

既然你是数组,在PHP中取得用户所选内容的时候 不就可以在循环中用下标来搞吗?

比如,你有10个checkbox,在PHP中循环10次,用不同的下标来得到这个checkbox是否被checked
如果被checked了,就得到这个下标的text的值

比如伪代码:

for ($i=0; $i<10; $i++) {
   if (checkbox[$i].checked) {
       $textValue = text.value;
   }
}

2011-07-14 10:57:13

#4 虞飞

复选框name=mycheckbox[]
文本框name="mytext[]"

提交后,action接收到后,就是两个有同样下标的数组($th ...
jake 发表于 2011-7-14 09:02
继续追问。当我随便勾选其中任意两个复选框,并修改对应的文本框的内容后,dump出来的结果是类似这样
Array
(
    [c] => admin
    [a] => links
    [lk_order] => Array
        (
            [0] => 0
            [1] => 2
            [2] => 3
            [3] => 0
            [4] => 0
            [5] => 0
            [6] => 0
            [7] => 0
            [8] => 0
            [9] => 0
        )

    [chose] => Array
        (
            [0] => 00026
            [1] => 00025
        )

    [modorder] => 调序
    [PHPSESSID] => 26jkodlc3n3f43varhq1a4sk32
)
顺序不对应啊,如果全选复选框倒是可以一一对应,但我不能要求用户每次都去勾选全部复选框啊。
这个该怎么办呢。

2011-07-14 12:59:23

#5 jake

页面表单HTML或者直接在name="xx[$i]" $i循环

2011-07-14 19:32:09