我想用表单做一个页面:两个输入(开始和结束日期)和两种要生成的报告。一种类型的报告使用一个文件生成,另一种类型的报告使用另一个文件生成。要生成其中一个报告,必须同时完成这两个日期。输入两个日期后,单击生成xml文件的按钮并将其作为xml文件自动下载到磁盘。
xml是使用php生成的,php从mysql数据库中提取数据。
不幸的是,我在创建这个表单时遇到了一个问题,在输入两个日期之后,这个表单将生成并保存一个xml文件,其中包含数据库中在给定时间段中包含的那些行。
我还希望能够在这个xml文件中插入三个日期:第一次输入的日期、第二次输入的日期和xml文件的创建日期。这些日期的位置在php中存储为:filecreateddate、startdate和enddate。
我的php文件:
<?php
/**create XML file */
$mysqli = new mysqli("localhost", "XXX", "XXX", "XXX");
/* check connection */
if ($mysqli->connect_errno) {
echo "Connect failed ".$mysqli->connect_error;
exit();
}
$query = "SELECT id, firma, ulica, nr, data_wystawienia, data_sprzedazy FROM FA";
$booksArray = array();
if ($result = $mysqli->query($query)) {
/* fetch associative array */
while ($row = $result->fetch_assoc()) {
array_push($booksArray, $row);
}
if(count($booksArray)){
createXMLfile($booksArray);
}
/* free result set */
$result->free();
}
/* close connection */
$mysqli->close();
function createXMLfile($booksArray){
$filePath = 'jpk.xml';
$dom = new DOMDocument('1.0', 'utf-8');
$root = $dom->createElement('JPK');
$naglowek = $dom->createElement('Naglowek');
$root->appendChild($naglowek);
$naglowek->appendChild( $dom->createElement('KodFormularza', 'JPK_FA') );
$naglowek->appendChild( $dom->createElement('WariantFormularza', '1') );
$naglowek->appendChild( $dom->createElement('CelZlozenia', '1') );
$naglowek->appendChild( $dom->createElement('DataWytworzeniaJPK', filecreateddate) );
$naglowek->appendChild( $dom->createElement('DataOd', startdate) );
$naglowek->appendChild( $dom->createElement('DataDo', enddate) );
for($i=0; $i<count($booksArray); $i++){
$bookid = $booksArray[$i]['id'];
$bookNazwaKontrahenta = $booksArray[$i]['firma'];
$bookAdresKontrahenta = $booksArray[$i]['ulica'];
$bookDowodSprzedazy = $booksArray[$i]['nr'];
$bookDataWystawienia = $booksArray[$i]['data_wystawienia'];
$bookDataSprzedazy = $booksArray[$i]['data_sprzedazy'];
$book = $dom->createElement('FA');
$book->setAttribute('id', $bookid);
$book->appendChild($NazwaKontrahenta = $dom->createElement('firma', $bookNazwaKontrahenta));
$book->appendChild($AdresKontrahenta = $dom->createElement('ulica', $bookAdresKontrahenta));
$book->appendChild($DowodSprzedazy = $dom->createElement('nr', $bookDowodSprzedazy));
$book->appendChild($DataWystawienia = $dom->createElement('data_wystawienia', $bookDataWystawienia));
$book->appendChild($DataSprzedazy = $dom->createElement('data_sprzedazy', $bookDataSprzedazy));
$root->appendChild($book);
}
$dom->appendChild($root);
$dom->save($filePath);
}
?>
带按钮的窗体必须如下所示:click
1条答案
按热度按时间jogvjijk1#
只需从
$_POST
或者$_GET
然后数组将它们作为sql中的参数和xml中的节点值传递。web表单数组的类型取决于html表单method
你不用贴的。假设采用以下形式,请考虑以下php:html格式
PHP
一定要通过在变量前面加前缀来更新函数
$
:请确保为实际日期字段更新上面的sql(即,替换mydate):