嗨,我收到一个错误:未定义的索引:aksi我的php代码是:
<?php
include"class_koneksi.php";
$db=new database();
$db->konek();
if(isset($_GET['aksi']) && $_GET['aksi'] ==''){
$daftar=$db->tampilData();
echo"<table border=1>
<tr>
<td>Id</td>
<td>Nama</td>
<td>Email</td>
<td>Pesan</td>
<td>Edit</td>
<td>Hapus</td>
</tr>";
foreach($daftar as $data){
echo" <tr>
<td>".$data['id']."</td>
<td>".$data['nama']."</td>
<td>".$data['email']."</td>
<td>".$data['pesan']."</td>
<td><a href='?aksi=edit&id=$data[id]'>edit</a></td>
<td><a href='?aksi=hapus_data&id=$data[id]'>Hapus</a></td>
</tr>";
}
echo"</table> <br> <a href='?aksi=tambah'>TAMBAH</a>";
}elseif($_GET['aksi']=='tambah'){ //line 31
echo"<br>
<form method=POST action='?aksi=tambah_data'>
<table>
<tr><td>Nama</td><td><input type=text name='nama'></td></tr>
<tr><td>Email</td><td><input type=text name='email'></td></tr>
<tr><td>Pesan</td><td><input type=text name='pesan'></td></tr>
<tr><td></td><td><input type=submit value='simpan'></td></tr>
</table>
</form>
";
}elseif($_GET['aksi']=='tambah_data'){ line 43
$id=$_POST[id];
$nama=$_POST['nama'];
$email=$_POST['email'];
$pesan=$_POST['pesan'];
$db->tambahData($id,$nama,$email,$pesan);
}elseif($_GET['aksi']=='edit'){ //50
$id=$_GET['id'];
echo"<br>
<form method=POST action='?aksi=update_data'>
<table>
<tr><td>Id</td><td><input type=text name='id' value='".$db->bacaData(id,$id)."'></td></tr>
<tr><td>Nama</td><td><input type=text name='nama' value='".$db->bacaData(nama,$id)."'></td></tr>
<tr><td>Email</td><td><input type=text name='email' value='".$db->bacaData(email,$id)."'></td></tr>
<tr><td>Pesan</td><td><input type=text name='pesan' value='".$db->bacaData(pesan,$id)."'></td></tr>
<tr><td></td><td><input type=submit value='simpan'></td></tr>
</table>
<input type='hidden' name='id' value='".$db->bacaData(id,$id)."'>
</form>
";
}elseif($_GET['aksi']=='update_data'){ //line 65
$id=$_POST[id];
$nama=$_POST['nama'];
$email=$_POST['email'];
$pesan=$_POST['pesan'];
$db->updateData($id,$nama,$email,$pesan);
}elseif($_GET['aksi']=='hapus_data'){ //line 72
$id=$_GET['id'];
$db->hapusData($id);
}
?>
如果(isset($_GET['aksi'])&$_GET['aksi']==''),但出现错误未定义索引:第31,43,50,65,72行C:''examplep''htdocs''crud''lat1.php中的aksi有人能帮我摆脱这个吗
提前感谢
您需要将isset($_GET['aksi']) &&
放在每个IF
语句中,因为它们彼此独立。因此,在第一个IF
语句中使用它并不意味着在其他语句中使用。
例如:
}elseif(isset($_GET['aksi']) && $_GET['aksi']=='tambah'){ // line 31
}elseif(isset($_GET['aksi']) && $_GET['aksi']=='tambah_data'){ // line 43
将if重组为这样的东西:
if(isset($_GET['aksi']))
{
if($_GET['aksi'])=='') ...
if($_GET['aksi'])=='anyvalue') ...
//..and so on
}
您最好在整个比较前加一次前缀,看看是否有值。甚至可能将其与switch
结合起来,以代替各种比较:
switch (isset($_GET["aksi"]) ? $_GET["aksi"] : "") {
case "":
///
break;
case "tampah":
///
case "tampah_data":
///
case "edit":
///
这更简短,而且通常更容易理解。
还要研究两个输出块的HEREDOC
字符串。它们允许在HTML中仍然使用双引号,但也可以插入变量或varexpressions。
error_reporting(E_ALL ^ E_NOTICE)