(在第一个混乱的版本之后编辑)
我的AJAX正在返回header.php页面,我只希望它返回$result值0或1。我正在使用ajax调用我的generateTicket.php。在那里我想generateTickets,如果目前没有其他票证的话。如果生成成功,则应返回1,否则返回0。
但目前它正在用我的响应(0或1)返回我的header.php。如何防止返回header.php。
AJAX:
function generateTicket() {
$.ajax({
url: 'generateTicket.php',
type: 'post',
datatype: "json",
data: {
showid: <?php echo $showid ?>,
seats: <?php echo $seats_json ?>
},
success: function(response) {
alert(response);
}
});
}generateTicket.php:
<?php
include('includes/header.php');
//Login prüfen
if (!$loggedIn) {
header('Location: login.php');
die();
}
//Variablen init
$userid = $_SESSION['userid'];
$showid = $_POST['showid'];
$seats = $_POST['seats'];
$result = 1;
//Für jeden Sitzplatz ein Ticket generien generieren
foreach($seats as $seat){
//Datenbank Ticket laden
$query = "SELECT * FROM ticket_uebersicht WHERE Sitzplatz LIKE ? AND VorstellungID = ? LIMIT 1";
$statement = $pdo->prepare($query);
$statement->execute(array($seat, $showid));
$row = $statement->fetch();
//Prüfen ob Ticket exestiert. Wenn ja -> Marktplatzticket -> anpassen. Wenn nein -> Neues Ticket generieren
if(!$row){
$code = guidv4();
$query = "INSERT INTO tickets (code, UserID, VorstellungID, Sitzplatz) VALUES (?,?,?,?)";
$statement = $pdo->prepare($query);
$statement->execute(array($code, $userid, $showid, $seat));
continue;
}else{
if($row['marktplatz'] != 0){
$code = guidv4();
$marketplace = '0';
$query = "UPDATE tickets SET UserID = ?, code = ?, marktplatz = ? WHERE Sitzplatz = ? AND VorstellungID = ? AND NOT marktplatz = 0 LIMIT 1";
$statement = $pdo->prepare($query);
$statement->execute(array($userid, $code, $marketplace, $seat, $showid));
if(!($row['UserID'] == -1)){
$betrag = $row['preis'] - 2;
$query = "INSERT INTO rueckerstattung (UserID, Betrag) VALUES (?,?)";
$statement = $pdo->prepare($query);
$statement->execute(array($row['UserID'], $betrag));
}
continue;
}
$result = 0; //Fehler
}
}
echo json_encode($result);
//Generieren der Ticket ID (FREMDCODE)
function guidv4($data = null) {
// Generate 16 bytes (128 bits) of random data or use the data passed into the function.
$data = $data ?? random_bytes(16);
assert(strlen($data) == 16);
// Set version to 0100
$data[6] = chr(ord($data[6]) & 0x0f | 0x40);
// Set bits 6-7 to 10
$data[8] = chr(ord($data[8]) & 0x3f | 0x80);
// Output the 36 character UUID.
return vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($data), 4));
}
exit;
?>header.php:
<?php
include('db_connect.php');
include('righthandler.php')
?>
<!DOCTYPE html>
<html lang="de">
<head>
<title>DHBW Kino Website</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="css/style.css" rel="stylesheet">
<!-- Insert Favicon to make it show in Tab -->
<link rel="shortcut icon" type="image/x-icon" href="../img/favicon.ico">
<!-- Latest compiled and minified CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-giJF6kkoqNQ00vy+HMDP7azOuL0xtbfIcaT9wjKHr8RbDVddVHyTfAAsrekwKmP1" crossorigin="anonymous">
<!-- jQuery library -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<!-- Popper JS -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
<!-- Latest compiled JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
<!-- Schriftart -->
<script src="https://use.fontawesome.com/releases/v5.0.8/js/all.js"></script>
<!-- Bootstrap Table Pack -->
<link rel="stylesheet" href="https://unpkg.com/bootstrap-table@1.18.2/dist/bootstrap-table.min.css">
<script src="https://unpkg.com/bootstrap-table@1.18.2/dist/bootstrap-table.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-table/1.18.2/locale/bootstrap-table-de-DE.min.js"></script>
</head>
<!-- Titel/ Header der Website-->
<div class="jumbotron container text-center" style="margin-bottom:0">
<img class="logo" src="../img/logo.png" width="60%">
</div>
<!-- Navigationsleiste -->
<nav class="navbar navbar-expand-sm bg-dark navbar-dark" >
<div class="container col-md-12">
<a class="navbar-brand text-warning" href="../index.php">DHBW Kino</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#collapsibleNavbar">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="collapsibleNavbar">
<ul class="navbar-nav me-auto">
<li class="nav-item">
<a class="nav-link" href="../index.php" style="color: #D3D3D3">Startseite</a>
</li>
<li class="nav-item">
<a class="nav-link" href="../anfahrt.php" style="color: #D3D3D3">Anfahrt</a>
</li>
<li class="nav-item">
<a class="nav-link" href="../info.php" style="color: #D3D3D3">Über uns</a>
</li>
<?php if($loggedIn) { ?> <li class="nav-item"> <a class="nav-link" href="../tickets.php" style="color: #D3D3D3">Tickets</a> </li> <?php } ?>
<?php if(hasRight('CONTROL_PANEL')) { ?> <li class="nav-item"> <a class="nav-link" href="../controlpanel.php" style="color: #D3D3D3">Verwaltung</a> </li> <?php } ?>
</ul>
</div>
<div class="collapse navbar-collapse" id="collapsibleNavbar">
<ul class="navbar-nav ms-auto">
<?php if($loggedIn) { ?> <li class="nav-item"> <a class="nav-link" href="../profile.php" style="color: #D3D3D3">Profil</a> </li> <?php } ?>
<li class="nav-item">
<?php
if($loggedIn) {
?>
<a class="nav-link" href="../logout.php" style="color: #D3D3D3">Log Out</a>
<?php
} else {
?>
<a class="nav-link" href="../login.php" style="color: #D3D3D3">Log In</a>
<?php
}
?>
</li>
</ul>
</div>
</div>
</nav>AJAX成功响应:(my index.php)
<!DOCTYPE html>
<html lang="de">
<head>
<title>DHBW Kino Website</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="css/style.css" rel="stylesheet">
<!-- Insert Favicon to make it show in Tab -->
<link rel="shortcut icon" type="image/x-icon" href="../img/favicon.ico">
<!-- Latest compiled and minified CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-giJF6kkoqNQ00vy+HMDP7azOuL0xtbfIcaT9wjKHr8RbDVddVHyTfAAsrekwKmP1" crossorigin="anonymous">
<!-- jQuery library -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<!-- Popper JS -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
<!-- Latest compiled JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
<!-- Schriftart -->
<script src="https://use.fontawesome.com/releases/v5.0.8/js/all.js"></script>
<!-- Bootstrap Table Pack -->
<link rel="stylesheet" href="https://unpkg.com/bootstrap-table@1.18.2/dist/bootstrap-table.min.css">
<script src="https://unpkg.com/bootstrap-table@1.18.2/dist/bootstrap-table.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-table/1.18.2/locale/bootstrap-table-de-DE.min.js"></script>
</head>
<!-- Titel/ Header der Website-->
<div class="jumbotron container text-center" style="margin-bottom:0">
<img class="logo" src="../img/logo.png" width="60%">
</div>
<!-- Navigationsleiste -->
<nav class="navbar navbar-expand-sm bg-dark navbar-dark" >
<div class="container col-md-12">
<a class="navbar-brand text-warning" href="../index.php">DHBW Kino</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#collapsibleNavbar">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="collapsibleNavbar">
<ul class="navbar-nav me-auto">
<li class="nav-item">
<a class="nav-link" href="../index.php" style="color: #D3D3D3">Startseite</a>
</li>
<li class="nav-item">
<a class="nav-link" href="../anfahrt.php" style="color: #D3D3D3">Anfahrt</a>
</li>
<li class="nav-item">
<a class="nav-link" href="../info.php" style="color: #D3D3D3">Über uns</a>
</li>
<li class="nav-item"> <a class="nav-link" href="../tickets.php" style="color: #D3D3D3">Tickets</a> </li> <li class="nav-item"> <a class="nav-link" href="../controlpanel.php" style="color: #D3D3D3">Verwaltung</a> </li> </ul>
</div>
<div class="collapse navbar-collapse" id="collapsibleNavbar">
<ul class="navbar-nav ms-auto">
<li class="nav-item"> <a class="nav-link" href="../profile.php" style="color: #D3D3D3">Profil</a> </li> <li class="nav-item">
<a class="nav-link" href="../logout.php" style="color: #D3D3D3">Log Out</a>
</li>
</ul>
</div>
</div>
</nav>
1发布于 2021-03-04 09:22:25
header.php文件中包含index.php的主体。因为在generateTicket.php文件中包含了header.php,所以可以在ajax请求中获得index.php的主体。您可以想象,include表达式或多或少只是将其自身替换为所包含文件的内容。
您必须将header.php中的HTML代码移动到其他文件中,或者不要将header.php文件包含在generateTicket.php中。
但是,如果这两个选项都不适合您,则有一种解决方法。您可以缓冲来自header.php的输出,然后直接删除它。
ob_start();
include('includes/header.php');
ob_end_clean();https://stackoverflow.com/questions/66467026
复制相似问题