2016-06-28 103 views
-1

提交后我有一些编码消息的问题。提交后留言

这里是代码:

<?php 
    if(isset($_POST['selected_name'])){ 
     $stmt = $mysqli->prepare("DELETE FROM artikel WHERE anr=?"); 
     $stmt->bind_param('i', $_POST['selected_name']); 
     $stmt->execute(); 
     $stmt->close(); 
    }else{ 
     echo "<h2>Artikel gelöscht!</h2>"; 
     header ("refresh:3; url=e3_artikel_loeschen.php"); 
    } 
?> 
<form action="" method="POST"> 
    <p>Artikel: 
     <?php 
      $stmt = $mysqli->prepare("SELECT anr, name FROM artikel"); 
      $stmt->execute(); 
      $stmt->bind_result($anr, $name); 
      echo "<select name='selected_name'><br />"; 
      while ($stmt->fetch()) { 
       echo '<option value='.$anr.'>'.$anr.' | '.$name.'</option>'; 
      } 
      echo "</select>"; 
     ?> 
     <input type="submit" name="submit" value="Datensatz löschen" /> 
    </form> 
</body> 
</html> 

我意识到,这样的消息总是存在,并不会消失。我的愿望是编码,以便让提交后只显示消息,然后返回到主页面。感谢您的帮助。

+0

您想要在提交后显示哪条消息? – Mad

+0

@Macro检查我的答案,您的代码中的逻辑错误 – Developer

+0

我试过了。但是随着代码的出现,消息将会每隔三秒刷新一次。 – Marco

回答

0

我解决我的问题是这样的:

我写的一个主页之外的代码:

<?php 
require_once ("db.inc.php"); 
if(isset($_POST['selected_name'])){ 




$stmt = $mysqli->prepare("DELETE FROM artikel WHERE anr=?"); 
$stmt->bind_param('i', $_POST['selected_name']); 
$stmt->execute(); 
    $stmt->close(); 




if (eregi("[0-9 [a-d]", $_POST['selected_name'])){ 
echo '<meta http- equiv="refresh content="3;url=e3_artikel_loeschen.php">'; 
echo "<h2>test</h2>"; 
} 
} 
?> 

这是主要页面的代码:

<!DOCTYPE html> 
<html> 
<meta http-equiv="content-type" content="text/html" /> 
<meta charset="utf-8" /> 
<?php 
require_once("db.inc.php"); 
?> 
<link rel="stylesheet" type="text/css" href="styles2.css" /> 
</head> 
<body> 
<form action="loeschen.php" method="POST"> 
<p>Artikel: 
<?php 
$stmt = $mysqli->prepare("SELECT anr, name FROM artikel"); 
$stmt->execute(); 
$stmt->bind_result($anr, $name); 
echo "<select name='selected_name'><br />"; 
while ($stmt->fetch()) { 
echo '<option value='.$anr.'>'.$anr.' | '.$name.'</option>'; 

} 

echo "</select>"; 

?> 
<input type="submit" name="submit" value="Datensatz löschen" /> 
</form> 
</body> 
</html> 

希望这可以帮助也为他人。

0

您正在尝试在发送标题后发送标题(通过echo发送消息)。把header行前echo,它应该工作。请注意:如果此代码是您计划保留的内容多于完全没有的内容,请了解如何从视图中分离模型和控制器。学习和使用PSR-1和PSR-2也不会伤害任何一方。

+0

此外,在这种情况下,如果我在回声之前放置标题行,我有同样的问题。提交后出现消息,但在此之后,消息仍然出现在主页面,并且每三秒刷新一次不停止 – Marco

0
echo '<script> 
alert("You have selected '.$language.'"); 
window.location = "'.$SITE_URL.'index.php?view=view_service." 
</script>'; 
0
<?php 
$con=mysqli_connect("localhost","root","","db"); 
// Check connection 
if (mysqli_connect_errno()) { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 

// escape variables for security 
$name = mysqli_real_escape_string($con, $_POST['name']); 
$email = mysqli_real_escape_string($con, $_POST['email']); 
$password = mysqli_real_escape_string($con, $_POST['password']); 
$phoneno = mysqli_real_escape_string($con, $_POST['phoneno']); 
$status = mysqli_real_escape_string($con, $_POST['status']); 

$sql = "SELECT * FROM register WHERE email='".$email."' AND status='1'"; 
$result = mysqli_query($con, $sql); 
if (mysqli_num_rows($result) > 0) 
    { 
     $errormsg="email already exist"; 
    } 
else{ 
$sql="INSERT INTO register (name,email,password,phoneno,status) VALUES ('$name','$email','$password','$phoneno','1')"; 
     if (!mysqli_query($con,$sql)) 
      { 
       die('Error: ' . mysqli_error($con)); 
      } 
     exit; 
mysqli_close($con); 
} 
?> 
<form role="form" action="" autocomplete="off" method="POST"> 

    <div class="input-group"> 
     <span class="input-group-addon"><i class="fa fa-user"></i></span> 
      <input type="name" class="form-control" name="name" placeholder="Company Name" required> 
    </div> 
    <span class="help-block"></span> 

    <div class="input-group"> 
     <span class="input-group-addon"><i class="fa fa-user"></i></span> 
      <input type="email" class="form-control" name="email" placeholder="email address" required> 
    </div> 
    <?php echo $errormsg;?></span> 

    <div class="input-group"> 
     <span class="input-group-addon"><i class="fa fa-lock"></i></span> 
      <input type="password" class="form-control" name="password" placeholder="Password" required> 
    </div> 
    <span class="help-block"></span> 

    <div class="input-group"> 
     <span class="input-group-addon"><i class="fa fa-user"></i></span> 
      <input type="tel" id="tel" class="form-control" name="phoneno" pattern="\d{10}" placeholder="Please enter a ten digit phone number" required /> 
    </div> 
    <span class="help-block"></span> 
    <input class="form-control" value="" type="hidden" name="status"> 

    <button class="btn btn-lg btn-primary btn-block" name="submit" type="submit">Sign Up</button> 

</form> 
0

在这种情况下,你可以使用JavaScript重定向与2延迟第二:

echo "<h2>Artikel gelöscht!</h2>"; 

echo '<script>setTimeout(function() { 
    window.location.href = "e3_artikel_loeschen.php""; 
}, 2000); </script>'; 
0

移动

echo "<h2>Artikel gelöscht!</h2>"; 
header ("refresh:3; url=e3_artikel_loeschen.php"); 

if(isset($_POST['selected_name'])){} 

,并重新排序,以

header ("refresh:3; url=e3_artikel_loeschen.php"); 
echo "<h2>Artikel gelöscht!</h2>"; 

UPDATE:试试这个

<?php 
if($_SERVER['REQUEST_METHOD']=='POST' && isset($_POST['selected_name'])) { 
     $stmt = $mysqli->prepare("DELETE FROM artikel WHERE anr=?"); 
     $stmt->bind_param('i', $_POST['selected_name']); 
     $stmt->execute(); 
     $stmt->close(); 
     header ("refresh:3; url=e3_artikel_loeschen.php"); 
     echo "<h2>Artikel gelöscht!</h2>"; 
} 
?> 

PHPFIDDLE EXAMPLE

+0

因此,我不需要编码} else {? – Marco

+0

我做到了,但仍然是同样的问题。页面每三秒刷新一次,消​​息不会消失。 – Marco

+0

@Marco是这个表格代码与主页在同一页上? –