【发布时间】:2016-08-21 14:06:45
【问题描述】:
现在我收到这条消息:在第 39 行的 D:\xampp\htdocs\dackhotell\includes\form.php 中为 foreach() 提供了无效参数,我真的不明白(我是 PHP 新手)如何解决它。
这是文件的代码:
<?php
if (isset($_REQUEST["updateView"])){
$id = $_REQUEST["updateView"];
$obj = $register->getOrder($id);
?>
<p>
<!-- Formuläret för uppdateringen -->
Inlämningsid: <input type = "text" name = "deliverId" value = "<?php echo $id;?>" readonly /><br />
Namn: <input type="text" name="new_name" value="<?php echo $obj->getName()?>" />
Telefonnummer: <input type="tel" name="new_phone_number" value="<?php echo $obj->getPhone()?>" />
E-post: <input type="email" name="new_email_user" value="<?php echo $obj->getEmail()?>" />
Däckfabrikat och dimension: <input type="text" name="new_fabricDim" value="<?php echo $obj->getDim()?>" />
Status: <input type="text" name="new_status" value="<?php echo $obj->getStatus()?>">
<br />
<input type="submit" name="updateOrder" value="Uppdatera info" />
<input type="button" id="exit" value="Avbryt" onClick="history.back()" />
</p>
<!-- ********** -->
<?php
}
foreach($register->gethotelList() as $key => $obj){
echo "<br /><strong>Namn: </strong>" . $obj->getName() . " <strong>Telefonnummer: </strong>" . $obj->getPhone() .
" <strong>E-post: </strong>" . $obj->getEmail() . " <strong>Däckfabrikat och dimension: </strong>" . $obj->getDim() .
" <strong>Status: </strong>" . $obj->getStatus() . " <strong>Uppdaterat: </strong>" . $obj->getDatum() .
" <a href='index.php?delOrder=$key'>Ta bort</a>, <a href='index.php?updateView=$key'> Uppdatera</a>";
}
?>
OOP 文件或代码如下:
// Skapar klassen Register som används sedan i formen
class Register {
protected $name = '';
// Skapar en array där all information kommer att lagras i HotelList
public $hotelList = array();
function __construct($namn){
$this->name = $namn;
/* Kollar ifall filen existerar och unserializerar det
sedan till array HotelList som består av objekt */
if(file_exists("order/order.txt")>0)
$this->hotelList = unserialize(file_get_contents("order/order.txt"));
}
// Skapar en funktion som lägger till nya order till array
function addOrder($userName, $userPhone, $userEmail, $fabricDim, $userStatus, $dat){
$this->hotelList[] = new Order($userName, $userPhone, $userEmail, $fabricDim, $userStatus, $dat);
// Serializerar och lägger till innehållet av array till nämnda filen
file_put_contents("order/order.txt",serialize($this->hotelList));
}
//Skapar en funktion för att kunna ta bort en order
function removeOrder($ind){
unset($this->hotelList[$ind]);
// Serialiserar och lägger till innehållet av array till nämnda filen
file_put_contents("order/order.txt",serialize($this->hotelList));
}
// Skapar en funktion för att kunna uppdatera innehållet eller ordern
function updateOrder($ind, $userName, $userPhone, $userEmail, $fabricDim, $userStatus, $dat){
$this->hotelList[$ind] = new Order($userName, $userPhone, $userEmail, $fabricDim, $userStatus, $dat);
// Serialiserar innehållet och lägger till den uppdaterade informationen till listan
file_put_contents("order/order.txt",serialize($this->hotelList));
}
public function getHotelList(){
return $this->hotelList;
}
public function getOrder($ind){
return $this->HotelList[$ind];
}
}
?>
现在我是否错过了将某些东西声明为数组的地方,或者我应该怎么做?
【问题讨论】:
-
form.php的第 39 行是哪一行? -
我在任何地方都看不到
<form></form>标签。另外,无法知道您如何使用/调用Register类。Order类在哪里?这里有太多未知数。 -
接受下面给出的答案。你似乎并不着急。
-
首先,请不要包含与您的问题无关的方法和一堆代码,很难理解。其次,请转储您的
getHotelList()输出。