2013-05-16 76 views
0

我从动态表单(HTML + JavaScript)获取输入并使用PHP脚本提取数据。我在PHP中使用serialize语句。这似乎没有工作 - 我无法获得任何数据到变量$featureids$featurenamesPHP序列化不起作用

这是代码 -

的HTML部分 -

<table border = "1px" width = "700px"> 
    <tr width> <td> 
    <b> Features </b> <br/> <br/> 
    FeatureId: <input type = "text" name = "FirstFeatureId"> <br/> 
    FeatureName: <input type = "text" name = "FirstFeatureName"> 
    <input type = "button" value = "Add Item" onclick = "addFeatureItem()" /> <br/> 
    <span id = "features"> <br/> </span> 
    </td> </tr> 
</table> 

JavaScript方法

function addFeatureItem(){ 
    //Text field to get the feature id 
    var featureIdTextField = document.createElement("input"); 
    featureIdTextField.setAttribute("name", "FeatureId[]"); 
    featureIdTextField.setAttribute("value", "Feature Id"); 

    var item = document.getElementById("features"); 
    item.appendChild(featureIdTextField); 

    //Text field to get the feature name 
    var featureNameTextField = document.createElement("input"); 
    featureNameTextField.setAttribute("name", "FeatureName[]"); 

    //Insert a break statement after creating a feature id and name 
    var breakStatement = document.createElement("br"); 

    item.appendChild(featureNameTextField); 
    item.appendChild(breakStatement); 

} 

和PHP部分 -

$featureids = serialize($_POST["FeatureId"]); 
echo $featureids; 
$featureids = unserialize($featureids); 

//inserting all the feature ids into an array 
$featureIdArray = array($_POST["FirstFeatureId"]); 
foreach ($featureids as $featureid) { 
    echo $featureid ; 
    array_push($featureIdArray, $featureid); 
} 

$featurenames = serialize($_POST["FeatureName"]); 
$featurenames = unserialize($featurenames); 

//insert all the feature names into an array 
$featureNameArray = array($_POST["FirstFeatureName"]); 
foreach ($featurenames as $featurename) { 
    array_push($featureNameArray, $featurename); 
} 

EDIT - 这是网络 - >页眉表单数据在Chrome

FirstFeatureId:fid 
FirstFeatureName:fname 
FeatureId[]:Feature Id 
FeatureName[]:Feature Name 
FeatureId[]:Feature Id 
FeatureName[]:Feature Name 
FeatureId: 

注 - 最后FEATUREID是空的某种原因

+3

为什么你想要序列化和反序列化? – sectus

+0

也打开所有的错误,并探索你的error.log文件 – sectus

+0

error.log中唯一的警告是提供给foreach()的无效参数' –

回答

0

我认为这个问题是一些地方在这里

var featureIdTextField = document.createElement("input"); 
featureIdTextField.setAttribute("name", "FeatureId[]"); 
featureIdTextField.setAttribute("value", "Feature Id"); 

尝试登录这些FeatureId和FirstFeatureName,我确定这些都是空的

其他明智没有问题序列化和未实现的功能。

此外,为什么你不使用jQuery来创建新的元素