Weiterleiten auf eine neue seite, durch klick eines Buttons ?

Code46

Erfahrenes Mitglied
Hi Leute,

kann man es irgendwie verhindern, dass man durch klick des Buttons nicht weitergeleitet wird?
Ich habe in einer Tabelle ein Button und beim rauf klicken soll diese Zeile komplet gelöscht werden.

Hier mein Code:
Das ist die delete.php
PHP:
<?php 
include 'dbc.php';
	if( isset($_GET['item_id']) ){
	$sql="DELETE *FROM item WHERE item_id = '".mysql_real_escape_string($_GET['item_id'])."'"; 
	$result= mysql_query($sql);
exit();	
	
	
	}  
?>

Das ist der Button

PHP:
echo "    <td width='18'><a href='delete.php?item_id={$row['item_id']}'' type='button'>Delete</a></td>";
 
Zuletzt bearbeitet:
Hi

a) Die entsprechende Zeile per Javascript aus der Anzeige rausnehmen
und
b) Per AJax etwas PHP-mäßiges in Gang setzen, das die Zeile auch aus der DB löscht.
 
Ich bekomme das nicht hin du,kannst bitte nochmal ein Auge drauf werfen und mich korrigieren ?
Es wird weder in der DB gelöscht, noch in der Tabelle.
PHP:
<?php
include 'dbc.php';
session_start();


if (!isset($_SESSION['user_name']))
{
	header('Location: login.php');
}
$_SESSION['user_id'];
if(isset($_POST['item_id'])) {
  $result = mysql_query('DELETE item_id,subject,description,created_at FROM item WHERE item_id = '.(int)$_POST['item_id']);
}

?>

<html>
<head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="assets/css/bootstrap-responsive.css" rel="stylesheet">
 <link href="css/bootstrap.min.css" rel="stylesheet" media="screen">
 <script src="http://code.jquery.com/jquery-latest.js"></script>
 <script src="js/bootstrap.min.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function() {
  $('a.delete').click(function(e) {
    e.preventDefault();
    var parent = $(this).parent();
    $.ajax({
      type: 'get',
      url: 'myaccount.php',
      data: 'ajax=1&delete=' + parent.attr('id').replace('record-',''),
      beforeSend: function() {
        parent.animate({'backgroundColor':'#fb6c6c'},300);
      },
      success: function() {
        parent.slideUp(300,function() {
          parent.remove();
        });
      }
    });
  });
});
</script>
<?php
if (!$link) {
   die('<p>Error connecting to database</p>');
} else if (!$db) {
   die('<p>Error selecting database</p>');
} else {
	

    $query = "SELECT item_id,user_id,subject,description,created_at FROM item WHERE user_id ='{$_SESSION['user_id']}'";
    if ( !($result = mysql_query($query)) ) {
        die('<p>Error reading database</p>');
    }else {
		echo "<table>";
		echo "<div class='record' id='record-',{$row['item_id']}>";
        echo "<thead>";
		echo "<tr>";
		echo "<th>Type</th>";
        echo "<th>Description</th>";
        echo "<th>Uploaded Date</th>";
        echo "</tr>";
		echo "</thead>";


			while($row = mysql_fetch_assoc($result))
			{
			$i = 0;
            if ($i%3 == 0) {
                echo "  <tr>";
            }
			echo "    <td width='18'>".$row['subject']."</td>";
            echo "    <td width='18'>".$row['description']."</td>";
            echo "    <td width='18'>".$row['created_at']."</td>";
			echo "    <td width='18'><a href='?item_id={$row['item_id']}',class='delete'>Delete</a></td>";
			echo "    <td width='18'><a href='editItem.php?item_id={$row['item_id']}'>Edit</a></td>";
            if ($i%3 == 0) {
                echo "  </tr>";
            }
            $i++;
        }
		echo "</div>";
        echo "</table>";

    }
} 
?>



    </table>
 
Zuletzt bearbeitet:
Heißt die Datei in der dieser Code steht wirklich "myaccount.php"?

Wenn ja, dann hast Du das Problem, dass der AJAX-Request per GET geschickt wird, du im PHP-Code aber auf $_POST-Werte prüfst. Passe eines von beiden an damit es klappt.
 
Beim veränder dies auf POST ändernt sich auch nichts.

PHP:
if(isset($_POST['item_id'])) {
  $result = mysql_query('DELETE item_id,subject,description,created_at FROM item WHERE item_id = '.(int)$_POST['item_id']);
}

Habe noch dies hinzugefügt.

PHP:
<input type="hidden" name="item_id" value="<?php echo $_GET['item_id'];?>">
 
Ja habe ich. Ich habe nur die abschnitte geposted die relevant waren.
Hier ist mein ganzer Code:

PHP:
<?php 
include 'dbc.php';
session_start();


if (!isset($_SESSION['user_name']))
{
	header('Location: login.php');
}
$_SESSION['user_id'];

$sql="SELECT postcode FROM user WHERE user_name='{$_SESSION['user_name']}'";
$result= mysql_query($sql);
while ($row = mysql_fetch_assoc($result)) 
	{

	 $postcode = $row['postcode'];
	}


if(isset($_POST['item_id'])) {
  $result = mysql_query('DELETE item_id,subject,description,created_at FROM item WHERE item_id = '.(int)$_POST['item_id']);
}

?>

<html>
<head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="assets/css/bootstrap-responsive.css" rel="stylesheet">
 <link href="css/bootstrap.min.css" rel="stylesheet" media="screen">
 <script src="http://code.jquery.com/jquery-latest.js"></script>
 <script src="js/bootstrap.min.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function() {
  $('a.delete').click(function(e) {
    e.preventDefault();
    var parent = $(this).parent();
    $.ajax({
      type: 'get',
      url: 'myaccount.php',
      data: 'ajax=1&delete=' + parent.attr('id').replace('record-',''),
      beforeSend: function() {
        parent.animate({'backgroundColor':'#fb6c6c'},300);
      },
      success: function() {
        parent.slideUp(300,function() {
          parent.remove();
        });
      }
    });
  });
});
</script>


<title>My Website</title>
</head>

<body>
<div class="container">

<h3 class="titlehdr">Welcome <?php echo $_SESSION['user_name'];?></h3>  
    <ul class="nav nav-pills">
	 <li><li class="active"><a href="myaccount.php">My Account</a></li>
    <li><a href="postItem.php">Post an Item</a></li>
	<li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</li>
	<li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</li>
	<li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</li>
	<li>    <form class="navbar-search pull-left">
    <input type="text" class="search-query" placeholder="Search">
    </form></li>
	<li><a href="logout.php">Logout </a></li>
    </ul>
<hr>
<img src="http://maps.google.com/maps/api/staticmap?center=<?php echo $postcode?>&zoom=14&size=800x200&maptype=roadmap&markers=color:ORANGE|label:A|
<?php echo $postcode?>&sensor=false" style="float: center">

<br><br><br>


<?php
if (!$link) {
   die('<p>Error connecting to database</p>');
} else if (!$db) {
   die('<p>Error selecting database</p>');
} else {
	

    $query = "SELECT item_id,user_id,subject,description,created_at FROM item WHERE user_id ='{$_SESSION['user_id']}'";
    if ( !($result = mysql_query($query)) ) {
        die('<p>Error reading database</p>');
    }else {
		echo "<table>";
		echo "<div class='record' id='record-',{$row['item_id']}>";
        echo "<thead>";
		echo "<tr>";
		echo "<th>Type</th>";
        echo "<th>Description</th>";
        echo "<th>Uploaded Date</th>";
        echo "</tr>";
		echo "</thead>";


			while($row = mysql_fetch_assoc($result))
			{
			$i = 0;
            if ($i%3 == 0) {
                echo "  <tr>";
            }
			echo "    <td width='18'>".$row['subject']."</td>";
            echo "    <td width='18'>".$row['description']."</td>";
            echo "    <td width='18'>".$row['created_at']."</td>";
			echo "    <td width='18'><a href='?item_id={$row['item_id']}',class='delete'>Delete</a></td>";
			echo "    <td width='18'><a href='editItem.php?item_id={$row['item_id']}'>Edit</a></td>";
            if ($i%3 == 0) {
                echo "  </tr>";
            }
            $i++;
        }
		echo "</div>";
        echo "</table>";

    }
} 
?>



    </table>
	




	
	</div>
</body>
</html>
 
Zurück