我正在循環$ _POST數組(生成的表單元素),我需要獲取我的foreach循環中下一個元素的鍵和值。
編輯:答案的元素名稱(即canbeanynameABC和canbeanynameXYZ)始終未知。
下面是一個例子數組:
Array (
[inputid] => 87 [inputoutputtype] => radio [canbeanynameABC] => radio answer 2
[inputid] => 88 [inputoutputtype] => radio [canbeanynameXYZ] => radio answer 4)
我的代碼在這裏
foreach ($_POST as $key => $value) {
switch ($key) {
case "inputid":
echo "<br/>Value of input_id : " . $value;
next($_POST);
echo "<br/>Value of inputoutputtype : " . $value;
next($_POST);
echo "<br/>Value of answer : " . $value;
break;
}
}
我認爲,做下一個($ _ POST),指針現在將定位於下一個鍵/值。
顯然,這是行不通的,我得到以下顯示:
Value of input_id : 87
Value of input_output_type : 87
Value of answer : 87
任何幫助將不勝感激。謝謝
編輯:有人建議我使用數組來組織我的表單元素/值。我仍然不知道如何使用數組,以便從表單返回每個答案(值),我實際上得到三個值(answer,inputid,inputoutputtype)
編輯:@CBroe我花了下午試圖瞭解如何在$ _POST中使用數組。表單可以包含任意數量的元素,這些元素可以是文本,電臺,選擇/選項,複選框(可以有多個返回的值)。我從這個表格獲得的每個「值」都必須與「inputid」和「inputoutputtype」相關聯。這些表單和元素是使用php生成的,所以我試圖構建一個php表單處理程序,它將讀取任意數量的元素和類型。生成器爲每個元素創建唯一的名稱,以便值不會被覆蓋。我想弄清楚如何將數組集成到生成器中,但不知道我是否可以爲它們分配一個行號(即[0],[1] ..)..也許我只是沒有看陣列如何適合我的情況。
更新:好吧,現在我想修改我的PHP表單處理程序來處理,可以有任何名稱的元素。我需要能夠從表單中填寫的元素中讀取id,類型和值(3個不同的值)。
我玩弄形式(即使它完全生成),但不知道什麼我應該改變這個帖子的標題,如果方向改變了,但名字我的元素
<input type='hidden' name='inputradio[inputid]' value='1'>
<input type='hidden' name='inputradio[inputoutputtype]' value='radio'>
<input type='radio' name='inputradio[output]' value='Radio answer 1'>
<input type='hidden' name='inputradio[inputid]' value='2'>
<input type='hidden' name='inputradio[inputoutputtype]' value='radio'>
<input type='radio' name='inputradio[output]' value='Radio answer 2'>
<input type='hidden' name='inputtext1[inputid]' value='3'>
<input type='hidden' name='inputtext1[inputoutputtype]' value='text'>
<input type='text' name='inputtext1[output]' value='Text answer 1'>
<input type='hidden' name='inputtext2[inputid]' value='4'>
<input type='hidden' name='inputtext2[inputoutputtype]' value='text'>
<input type='text' name='inputtext2[output]' value='Text answer 2'>
?
感謝 Ç
我不知道PHP,但從我收集的是,這不是你將如何使用'next(...)'方法。從我收集的是'next(...)'方法用於推進數組的內部指針(右?或類似的東西?)Anywho,「$ key」和「$ value」是你使用,而不是內部指針。所以我會重寫開關來處理所有三種情況,然後忽略第四/五(如果這是你的意圖),看看是否有效。這似乎是因爲你引用了數組的內部指針,所以你通過調用'$ key'和'$ value'沒有太大的作用。合理? –
你的方法從一開始就有缺陷。不要在foreach循環中嘗試訪問下一個元素和之後的元素,應該首先以一種方式命名錶單元素,以便首先獲得可用的數據結構_。提示:您可以在表單元素名稱中使用'['和']'在$ _POST中創建數組,您甚至可以指定所需的索引f.e. 'name =「foo [0] [id]','name =」foo [0] [outputtype]'等 – CBroe
我覺得這不僅僅是評論的答案。 –