Ich arbeite derzeit auf einem Backend-Skript für ein Projekt Meine PHP-Fähigkeiten sind in Ordnung, ich arbeite arbeiten, was ich will. Aber alles über JS/AJAX/jQuery habe ich nicht verstanden.Replace Popup mit Modal und führen PHP-Skript
Ok, mein Problem:
Ich habe Thumbnails für Videos und Fotoserien und will für jede Abdeckung Fotos einzustellen. Ich benutze im Moment ein Popup-Skript, das funktioniert. Aber ich benutze ein Admin-Thema (basierend auf Bootstrap), das ich gekauft habe und es wird viel besser aussehen, wenn ich modals und nicht popups benutze.
Ich versuche viele Dinge, um mein Skript aus dem Popup bekommen in das Modal arbeiten - aber ich scheitere die ganze Zeit.
Ich öffne die modal mit
<a class="btn red btn-outline sbold" href="<?php echo $website; ?>/modals/photo_cover.php?photoid=<?php echo $row['id']; ?>" data-target="#ajax" data-toggle="modal"> Generiere Thumbnails </a>
Es öffnet sich ein preloader modal, dass ich auch auf meiner Seite hinzufügen. Ich möchte das, weil ich in Zukunft eine automatische Generierung von Thumbs hinzufügen möchte. Es sollte also der Loader angezeigt werden, während die Thumbs generiert werden.
<div class="modal fade bs-modal-lg" id="ajax" role="basic" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-body">
<img src="<?php echo $website; ?>/assets/global/img/loading-spinner-grey.gif" alt="" class="loading" />
<span> Generiere Thumbnails ...</span>
</div>
</div>
</div>
</div>
Dann wird die (externe) modal mit meinem Skript offen:
<?php
include_once ('../classes/LS.php');
include_once ('../inc/config.php');
?>
<style>
label > input { visibility: hidden; position: absolute; }
label > input + img { cursor:pointer; border:2px solid transparent; }
label > input:checked + img { border:2px solid #f00; }
</style>
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
<h4 class="modal-title">Galerievorschau</h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-12">
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$sql = "UPDATE content_pic_db SET pic_poster_file = :pic_poster_file WHERE id = :id";
$stmt = $dbh1->prepare($sql);
$stmt->bindParam(':id', $_GET['photoid']);
$stmt->bindParam(':pic_poster_file', $_POST['poster']);
$stmt->execute();
?>
<div class="portlet-body">
<div class="note note-danger"><p>Klicke auf ein Bild um es als Vorschaubild für die Galerie festzulegen.</p></div>
<div class="row">
<div class="col-sm-12 col-md-12">Das Vorschaubild wurde erfolgreich Deiner Galerie zugewiesen. Du kannst jetzt dieses Fenster schliessen.</div>
</div>
</div>
<?php } else { ?>
<div class="portlet-body">
<div class="note note-danger"><p>Klicke auf ein Bild um es als Galerievorschau festzulegen.</p></div>
<div class="row">
<form id="preview" method="POST">
<?php
if (!empty($_GET['photoid'])) {
$stmt = $dbh1->prepare('SELECT pic_count, pic_path FROM content_pic_db WHERE id = :id');
$stmt->execute(array(':id' => $_GET['photoid']));
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$pfad = $row['pic_path'] . '/thumbs/';
$scan = glob($pfad . "*.{jpg}",GLOB_BRACE);
for ($i = 0; $i<count($scan); $i++) {
if (strlen($scan[$i]) >= 3) {
?>
<div class="col-sm-6 col-md-6">
<label class="thumbnail">
<input type="radio" name="poster" value="<?php echo substr($scan[$i], 50); ?>" />
<img title="Klicke auf ein Bild um es als Vorschau auszuwählen" src="<?php echo $website; ?>/stream_g.php?id=<?php echo $_GET['photoid']; ?>&file=<?php echo substr($scan[$i],50); ?>" />
</label>
</div>
<?php
}
}
}
}
?>
</form>
</div>
</div>
</div>
</div>
</div>
<div class="modal-footer"><button type="button" class="btn red" data-dismiss="modal">Fenster schliessen</button></div>
<script>$('input[name=poster]').change(function() { $("#preview").submit(); });</script>
Und hier sind mein Problem zu starten.
Das Modal wird geöffnet sein, aber wenn ich ein Bild (ich ersetze die Radiobuttons mit den Bildern) als Cover auswähle, wird das Modal einfach geschlossen und nichts wird in die Datenbank geschrieben. Als Popup funktioniert alles, aber nicht so modal.
Ich denke, ich muss JS/AJAX/jQuery verwenden, um in die Datenbank zu schreiben. Aber ich weiß nicht wie ... Ich lese schon eine Menge Tuts aber ich verstehe nicht wie es funktioniert.
Wäre schön, wenn jemand könnte mich Schritt für Schritt erklären, wie ich diese Arbeit ...
bekommen Und ich muss wissen, wie ein Skript auszuführen und informieren Sie sich, wenn es fertig ist. Wie ich bereits gesagt habe, möchte ich eine Option hinzufügen, um Thumbs zu generieren. Also möchte ich das Preloader Modal öffnen, die Daumen generieren und wenn es fertig ist sollte es das 2. Modal für die Auswahl des Deckels zeigen.