我正在尝试为我的网站设置每日特价页面。我希望厨师能够在线填写表格,并将他们键入表格中的信息显示在网站的每日特价页面上。我对编程非常陌生,我一点也不了解PHP,所以我想知道是否有一种我不了解的简单方法来实现这一点。
我可以很容易地使用数据库来完成此操作,但是我无法为此站点设置数据库。长话短说,不要问。
我可以使用PHP将数据从厨师填写的在线表单传输到每日特价页面-但是一旦关闭表单,数据就不会保留在那里。我尝试在表单上使用onSubmit return false来防止它被清除,但是那没有用。还有另一种方法可以做到这一点,还是我做错了?
我可以使用本地存储来保留表单中的信息,并使用jQuery从表单中获取数据并将其放在每日特价页面上-但这仅适用于我的机器。是否有类似服务器或域名的本地存储之类的东西?
我尝试嵌入Google文档和Google工作表-Google的文档显示,对工作表进行更改后,工作表将在嵌入它们的网站上自动更新,但事实并非如此-或至少我没有设法使它起作用。而且CSS非常有限,因此看起来不太好。
我可以使用jQuery.load()从.html和.txt获取信息到我的每日特价页面-但是如何首先将信息获取到html或txt文件?文本文件需要在服务器上或在线,以便厨师可以访问它,而网站也可以访问它。我可以使用PHP和html表单写入.txt,但无法将它们放在一起。
使用这些非常简单的页面:
form.html
<form action="action.php" method="POST">
<input name="field1" type="text" />
<input name="field2" type="text" />
<input type="submit" name="submit" value="Save Data">
</form>
action.php
<?php
if(isset($_POST['field1']) && isset($_POST['field2'])) {
$data = $_POST['field1'] . '-' . $_POST['field2'] . "\r\n";
$ret = file_put_contents('mydata.txt', $data, FILE_APPEND | LOCK_EX);
if($ret === false) {
die('There was an error writing this file');
}
else {
echo "$ret bytes written to file";
}
}
else {
die('no post data to process');
}
load.html
<b>Projects:</b>
<ol id="cafe"></ol>
<script>
$( "#cafe" ).load( "mydata.txt" );
</script>
我已经能够填写表格-将数据写到文本文件中-从文本文件中获取数据并将其添加到html页面中-但是我如何使它做到所有这些并看起来不错?我不知道如何设置它,以便当它向文本文件添加数据时,它会将特定的数据片段添加到特定的div中,这样我就可以将该特定的div调用到我的html页面上并向其中添加CSS? 我是否需要为每个新数据制作一个新的.txt文件?
我有5件事需要每家餐厅更新,我有4家餐厅。
所以我将有:
餐厅A-我需要更新,1.厨师姓名。 2.特殊名称,3.特殊说明,4.孩子的特殊名称,5.孩子的特殊说明。
餐馆B-我需要更新,1.厨师姓名。 2.特殊名称,3.特殊描述,4.孩子的特殊名称,5.孩子的特殊描述。
餐馆C-我需要更新,1.厨师姓名。 2.特殊名称,3.特殊描述,4.孩子的特殊名称,5.孩子的特殊描述。
餐馆D-我需要更新,1.厨师姓名。 2.特殊名称,3.特殊说明,4.孩子的特殊名称,5.孩子的特殊说明。
什么都不需要保存,只需替换-
所以现在我想,如果我将每个新数据写入不同的txt文件,我就可以做到。因此,餐厅A将具有Chefname.txt,specialname.txt,specialdescription.txt,kidspecial.txt和kiddescription.tx。
有人有更好的方法吗?看起来这很简单,我很新,不知道做什么 我应该这样做。
答案 0 :(得分:0)
您可以像完成操作一样将数据存储在.txt文件中,但是可以使用某些格式,例如(第一家餐厅)厨师名称|特殊名称|特殊描述|孩子的特殊名称|孩子的特别说明。之后,逐行解析并用特殊字符将其分割(例如:|)
答案 1 :(得分:0)
不使用数据库的最简单方法是使用JSON,它存储在一个简单的.txt文件中。但是,这确实需要对安全性进行更多思考。最重要的问题是授权他人编辑您的表格,从而修改您的数据。
但是要回答您的问题,我建议如下:
form.html
<form action="action.php" method="POST">
<select name="restaurant">
<option value="1">Restaurant 1</option>
<option value="2">Restaurant 2</option>
<option value="3">Restaurant 3</option>
<option value="4">Restaurant 4</option>
</select>
<input name="chef" type="text" />
<input name="special_name" type="text" />
<input name="special_descr" type="text" />
<input name="child_name" type="text" />
<input name="child_descr" type="text" />
<input type="submit" name="submit" value="Save Data">
</form>
action.php
<?php
if (isset($_POST['submit'])) {
$data = json_decode(file_get_contents("data.txt"), true); // true for assoc
$data[$_POST['restaurant']] = array(
"chef" => $_POST['chef'],
"special_name" => $_POST['special_name'],
"special_descr" => $_POST['special_descr'],
"child_name" => $_POST['child_name'],
"child_descr" => $_POST['child_descr']
);
$newData = json_encode($data);
file_put_contents("data.txt", $newData);
}
?>
load.php
<?php
$data = json_decode(file_get_contents("data.txt"), true); // true for assoc
foreach($data as $k => $v) {
echo "<p>" . PHP_EOL;
echo "Special Restaurant " . $k . ":<br />" . PHP_EOL;
echo "Chef: " . $v['chef'] . "<br />" . PHP_EOL;
echo "Name: " . $v['special_name'] . "<br />" . PHP_EOL;
echo "Description: " . $v['special_descr'] . "<br />" . PHP_EOL;
echo "Children: " . $v['child_name'] . "<br />" . PHP_EOL;
echo "Description: " . $v['child_descr'] . "<br />" . PHP_EOL;
echo "</p>" . PHP_EOL;
}
?>
基本上,在action.php中,您首先将JSON中的data.txt文件中的现有数据解码为PHP可读的多维数组,并使用键1至4(对于餐厅),每个键包含一个带有不同值的arry厨师,特殊名字等 然后,您可以轻松地更新此数组,再次将其转换为JSON并存储。
在load.php(不是load.html)中,您可以再次将JSON字符串转换为数组,循环遍历并输出每个餐厅的值。
现在,这仅是一个示例,说明我将如何处理此问题,您应该自己添加错误处理和授权检查。