用戶serialize()
數組和對象,就像你說的。但是,對於工作添加另一個按鈕,你需要JavaScript。這是一種形式:
<form action="action.php" method="post">
<div id="phoneNumbers">
<input type="text" value="home phone">: <input type="text" name="0-value" value="(xxx)xxx-xxxx">
</div>
<button onclick="addAnother();">Add Another Phone Number</button>
<input type="submit>
</form>
這裏是JavaScript(把你的網頁的頭標記):
<script type="text/javascript">
var nums=0;
function addAnother(){
document.getElementById('phoneNumbers').innerHTML+='<input type="text" name="'+++nums+'-name">: <input type="text" name="'+nums+'-value">';
}
</script>
下面是action.php的:
<?php
$arrayOfNums=array();
foreach($_POST as $curVal){
array_push($arrayOfNums,$curVal);
}
$serializedArray=serialize($arrayOfNums);
#now do whatever code you have to add serializedArray to your database. It is a string, so this is easy.
?>
現在你有一個序列化數組。只是unserialize()
它,你有這樣一個數組,在名稱和值之間交替:'家庭電話','(324)444-4356','工作電話','(444)546-5678'等。這是未經測試的,告訴我它是否失敗。
任何關於如何在PHP中做到這一點的建議,如果除了手機之外,該頁面上有更多的東西。那麼我怎麼能設置控制器上if($ this-> request->是('post')來做數組序列化只有當手機值保存? – 2013-03-13 19:03:51