2017-01-25 4 views
0

im довольно любительский с php и тем более с js. Я создал таблицу базы данных с кнопкой удаления &, как показано на скриншоте. (если кто-то также может понять, почему существует разрыв между моим заголовком и телом таблицы, что было бы здорово, я не знаю, почему это происходит, похоже, это не css).HTML-база данных PHP - кнопка редактирования/удаления - значение передачи

Идея состоит в том, чтобы просто нажать кнопку «Удалить», передать «AwbNo» на страницу delete.php, чтобы удалить всю строку из базы данных, а затем автоматически вернуться на страницу, чтобы увидеть обновленную таблицу, если можно избежать перенаправления, еще лучше просто сделать операцию более плавной. Любая помощь будет принята с благодарностью, надеюсь, что моего кода ниже достаточно для помощи

поэтому выберите строку для удаления> нажмите delete> confirm> row deleted from db. То есть процесс я с целью достижения

example database screenshot

<table class="table"> 
       <thead> 
        <tr> 
        <th>Awb Number</th> 
        <th>Vessel</th> 
        <th>Client</th> 
        <th>Pieces</th> 
        <th>Total Weight</th> 
        <th>Carrier</th> 
        <th>Sender</th> 
        <th>Status</th> 
        <th>Arrival Date</th> 
        <th>Action</th> 
        </tr> 
       </thead> 
       <tbody> 
        <?php    //BEGINNING OF PHP 
        include("login/dbinfo.inc.php"); 
        [email protected]_connect(localhost,$username,$password); 
        [email protected]_select_db($database) or die("Unable to select database"); 

        $sql="SELECT AwbNo, VesselName, ClientCode, Pieces, Weight, Carrier, Sender, Status, DATE_FORMAT(ArrivalDate, '%d-%m-%yyyy') FROM tbl_import"; 
        $result = mysql_query($sql) or die("SELECT Error: ".mysql_error()); 
        $num_rows = mysql_num_rows($result); 
        echo "<p>There are $num_rows records in the Customer table.</p>"; 
        echo "<table class=\"table\">\n"; 
        while ($get_info = mysql_fetch_array($result)) 
        { 
         echo ("<tr>\n"); 
         echo ("<td>".$get_info["AwbNo"]."</td>"); 
         echo ("<td>".$get_info["VesselName"]."</td>"); 
         echo ("<td>".$get_info["ClientCode"]."</td>"); 
         echo ("<td>".$get_info["Pieces"]."</td>"); 
         echo ("<td>".$get_info["Weight"]."</td>"); 
         echo ("<td>".$get_info["Carrier"]."</td>"); 
         echo ("<td>".$get_info["Sender"]."</td>"); 
         echo ("<td>".$get_info["Status"]."</td>"); 
         echo ("<td>".$get_info["ArrivalDate"]."</td>"); 
         ?> 
          <td> 
          <div id="outer"> 
           <div class="inner"><button type="submit" class="msgBtn" onClick="goToURL()" > Edit </button></div> 
           <div class="inner"><button type="submit" class="msgBtn2" onClick="goToURL1()"> Delete </button></div> 
           </div> 
          </td> 
         <?php 
         echo ("</tr>\n"); 
        } 
        echo "</table>\n"; 
        mysql_close(); 
        ?>     <!--END OF PHP--> 
       </tbody> 
       </table> 

Ниже приводится JS скрипт для перенаправления страницы пользователя при нажатии на «редактировать» или «удалить» кнопку.

<script> 
function goToURL() { 
window.open('php/edit.php'); 
} 
function goToURL1() { 
    window.open('php/delete.php'); 
} 
</script> 

И ниже является предположив «delete.php» страницы, чтобы удалить запись из БД на реальном сервере, это всего лишь пример, им не совсем уверен, что это правильно.

<?php 
     include("dbinfo.inc.php"); 
     [email protected]_connect(localhost,$username,$password); 
     [email protected]_select_db($database) or die("Unable to select database"); 
     $AwbNo=$_POST['AwbNo']; 
     $sql="DELETE FROM tbl_import where AwbNo=$AwbNo"; 
     mysql_query($sql)or die("Delete Error: ".mysql_error()); 
     mysql_close(); 
     echo "Record was successfully deleted.\n"; 
     ?> 
+0

Вы можете разместить свой код формы? –

+0

Привет, христианин, добро пожаловать в StackOverflow! У вашего вопроса нет четкого описания проблемы. Опишите, что происходит, и где какие-либо проблемы, а также то, что вы пробовали. –

+3

*** Пожалуйста, прекратите использование 'mysql_ *' функций (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php). *** [Эти расширения ] (http://php.net/manual/en/migration70.removed-exts-sapis.php) были удалены в PHP 7. Узнайте о [подготовленном] (http://en.wikipedia.org/wiki/Prepared_statement) для [PDO] (http://php.net/manual/en/pdo.prepared-statements.php) и [MySQLi] (http://php.net/manual/en/mysqli.quickstart.prepared- statements.php) и подумайте об использовании PDO, [это действительно довольно легко] (http://jayblanchard.net/demystifying_php_pdo.html). –

ответ

1

Добро пожаловать в StackOverflow!

Проблема, связанная с тем, что вам необходимо передать primary key, что AwbNo в вашем случае вместе с ссылкой «Редактировать/Удалить», чтобы из базы данных была выбрана правильная запись. Это не происходит в вашем случае.

Код для таблицы должен выглядеть примерно так, как указано ниже, для редактирования ссылок &.

echo '<td><a href="edit.php?id='.$get_info['AwbNo']. '">&nbspEdit&nbsp</a></td>'; 
echo '<td><a href="javascript:delete_user('.$get_info['AwbNo']. ')">&nbspDelete&nbsp</a></td>' 

Также добавьте этот скрипт на той же странице.

<script> 
     function delete_user(uid) 
     { 
      if (confirm('Are You Sure to Delete this Record?')) 
      { 
       window.location.href = 'delete.php?id=' + uid; 
      } 
     } 
    </script> 

delete.php может иметь только этот код:

<?php 

     include("dbinfo.inc.php"); 
     [email protected]_connect(localhost,$username,$password); 
     [email protected]_select_db($database) or die("Unable to select database"); 
     $id = $_GET['id']; // $id is now defined 
     mysqli_query($conn,"DELETE FROM tbl_import where AwbNo='".$id."'"); 
     mysqli_close($conn); 
     header("Location: index.php"); //redirect to relevant page 

    ?> 
+0

Спасибо, Неха, указав мне в правильном направлении, я могу понять вышеизложенное и посмотреть, как передается первичный ключ. Страница подтверждения и т. Д. Работает, но когда я нажимаю «Ok» для удаления записи, im перенаправляется на ошибку 404: файл или каталог не найдены. Я предполагаю, что страница delete.php не собирает идентификатор? или это url "delete.php? id = 159847263" – sanitizer

+0

'id' передается правильно. Вам нужно нарисовать страницу перенаправления здесь: 'header (" Location: index.php "); // перенаправлять на соответствующую страницу'. Я не знал, какая у вас страница перенаправления, поэтому я просто указал ее на 'index.php' –

+0

Нашел проблему, пришлось изменить перенаправление в скрипте. Выполняется отлично, но не влияет на мою базу данных, запись не удаляется, как и должно быть – sanitizer

Смежные вопросы