0

好吧,我将重新开始我想要完成的事情。

我有一个网站,我希望在“访问者姓名”部分中有表格,以便能够根据需要添加字段。我想我已经解决了。

<fieldset>
        <legend>Visitor Name</legend>
<div id="placeholder">
        <div id="addmore">
                <label for="firstname">First Name:</label>
                <input type="text" name="name[]" value="">
                <label for="lastname">Last Name:</label>
                <input type="text" name="name[]" value"">
                <label for="jobtitle">Job Title:</label>
                <input type="text" name="name[]" value="">
        </div>
</div>

js代码是

var _counter = 0;
function Add() {
    _counter++;
    var oClone = document.getElementById("addmore").cloneNode(true);
    oClone.id += (_counter + "");
    document.getElementById("placeholder").appendChild(oClone);
}

当按下“添加访客”按钮时创建字段,对可以创建的动态文件的数量没有限制。

所以我想 PHP 部分是我被挂断的地方。

如何将这些动态值传递给 php 脚本并将它们放在一个文件中。

当我使用

foreach($_POST['name'] as $info) {
      fwrite($file, "$companyname,$info,$boxes,$boxes1,$boxes2,$boxes3,$boxes4,$boxes5,$boxes6,$boxes7,$boxes8,$boxes9,$boxes10,$boxes11 \n");
    }

我明白了

公司,弗雷德,不,不,不,不,是,不,不,不,不,是,不,是的 公司,威廉姆斯,不,不,不,不,是,不,不,不,不,是,不,是公司,你好,不,不,不,不,是,不,不,不,不,是,不,是的公司,托德,不,不,不,不,是,不,不,不,不,是,不,是公司,威廉姆斯,不,不,不,不,是,不,不,不,不,是,不,是的公司,你好,不,不,不,不,是,不,不,不,不,是,不,是

代替

公司,弗雷德,威廉姆斯,你好,不,不,不,不,是,不,不,不,不,是,不,是 公司,托德,威廉姆斯,你好,不,不,不,不,是,不,不,不,不,是,不,是

所以我想我正在获取数据,但我需要将其放入上述格式。

抱歉我对此一无所知。

当我做:

$my_array = $_POST['name'];
$visitor = implode(",",$my_array);

进而

echo "$companyname,$visitor,$boxes,$boxes1,$boxes2,$boxes3,$boxes4,$boxes5,$boxes6,$boxes7,$boxes8,$boxes9,$boxes10,$boxes11 <br />";

它给我的名字不止一个

公司,比利,威廉姆斯,测试,鲍比,威廉姆斯,测试,不,不,不,不,不,不,不,不,不,不,不,不

我得到的只是获取 $visitor 数组并添加到 $visitor 部分。所以它正在获取数据,但我仍然无法在文件中每个名称一行获取它。

当我这样做的时候

print_r($visitor);

我得到了一行中输入到文本框中的信息。

比利,威廉姆斯,测试,鲍勃,威廉姆斯,测试

当我这样做的时候

print_r($_POST);

我明白了

Array ( [companyname] => Buster [name] => Array ( [0] => bob [1] => Buddy [2] => Test [3] => bob [4] => Buddy [5] => Test ) [Submit] => Add Visitor )

我想通了。

foreach($firstname as $key => $value){
fwrite($file, "$companyname,$value,$lastname[$key],$jobtitle[$key],$boxes,$boxes1,$boxes2,$boxes3,$boxes4,$boxes5,$boxes6,$boxes7,$boxes8,$boxes9,$boxes10,$boxes11 \n");
4

3 回答 3

0

由于您可以将数据传递到数组中并写入 t 文件,因此请在此处阅读如何使用 PHP fputcsv() 并查看它如何帮助您。http://php.net/manual/en/function.fputcsv.php

来自上述网址的示例:

<?php

$list = array (
    array('aaa', 'bbb', 'ccc', 'dddd'),
    array('123', '456', '789'),
    array('"aaa"', '"bbb"')
);

$fp = fopen('file.csv', 'w');

foreach ($list as $fields) {
    fputcsv($fp, $fields);
}

fclose($fp);
?>
于 2013-03-16T05:50:37.527 回答
0

我建议查看@OmniPotents 答案,另一个快速且 [非常] 肮脏的选择是:

$a = array('aaa', 'bbb', 'ccc', 'dddd');
$b = array('zzz', 'bbb', 'ccc', 'dddd');

function toCsv($arr) {
    return file_put_contents('file.csv', implode(",", $arr) . PHP_EOL, FILE_APPEND);
} 

toCsv($a);
toCsv($b);

然后 file.csv 看起来像

aaa,bbb,ccc,dddd
zzz,bbb,ccc,dddd

请记住,这样的解决方案没有考虑对某些 CSV 很重要的文本分隔符之类的东西

于 2013-03-16T06:10:41.940 回答
0

这就是我为解决我的问题所做的

foreach($firstname as $key => $value){
fwrite($file, "$companyname,$value,$lastname[$key],$jobtitle[$key],$boxes,$boxes1,$boxes2,$boxes3,$boxes4,$boxes5,$boxes6,$boxes7,$boxes8,$boxes9,$boxes10,$boxes11 \n");

我把它放在我原来的帖子中,但我想我也会把它作为答案发布。

于 2013-03-27T14:40:29.357 回答