2013-11-27 21 views
-1

你好我得到一個錯誤:未定義指數:aksi我的PHP代碼:未定義指數:在PHP aksi

<?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'] =='')但是錯誤未定義的索引:aksi在C:\ xampp \ htdocs \ crud \ lat1.php在線31,43,50,65,72 有ANY1反芻誰幫我出這

感謝提前

回答

0

你需要把isset($_GET['aksi']) &&在您的每個IF陳述中,因爲它們彼此分開。因此,在您的第一個IF聲明中使用它並不意味着它在其餘部分中使用。

例如:

}elseif(isset($_GET['aksi']) && $_GET['aksi']=='tambah'){ // line 31 

}elseif(isset($_GET['aksi']) && $_GET['aksi']=='tambah_data'){ // line 43 
0

重組你,如果對這樣的事情:

if(isset($_GET['aksi'])) 
{ 
    if($_GET['aksi'])=='') ... 

    if($_GET['aksi'])=='anyvalue') ... 

    //..and so on 
} 
0

你最好的前綴比較全一次,看看是否有一個值。甚至可能在發生的各種比較有switch結合起來:

switch (isset($_GET["aksi"]) ? $_GET["aksi"] : "") { 

    case "": 
     /// 
     break; 

    case "tampah": 
     /// 

    case "tampah_data": 
     /// 

    case "edit": 
     /// 

這是簡短的,往往更容易執行。

還調查HEREDOC兩個輸出塊的字符串。那些允許仍然使用HTML的雙引號,但也插入變量或varexpressions。

0
error_reporting(E_ALL^E_NOTICE) 
+0

你能解釋*爲什麼*?任何鏈接到文檔? – brasofilo

+0

我認爲這是一個通知,而不是error.so [鏈接](http://php.net/manual/en/function.error-reporting.php) –

+0

對不起,我應該指出你這個:[answer] – brasofilo