私は現在、プロジェクトのバックエンドスクリプトで作業しています。私のPHPスキルは大丈夫です。しかし、JS/AJAX/jQueryのすべては理解できませんでした。ポップアップをモーダルに置き換えてPHPスクリプトを実行
[OK]を、私の問題:
私はビデオや写真セットのサムネイルを持っており、それぞれのカバー写真を設定します。私は現時点でポップアップスクリプトを使用しています。 しかし、私は購買したadminテーマ(Bootstrapに基づいています)を使用しています。モーダルを使用し、ポップアップを使用しないと、もっと良く見えます。
ポップアップからスクリプトを取得するために多くのことを試していますが、私は常に失敗します。
私は
<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>
でモーダルを開くこれは私がまた私のページに追加することを、プリローダーのモーダルを開きます。私はこれを望んでいます、私は将来、親指の自動生成を追加したいからです。したがって、親指が生成される間にローダーを表示する必要があります。
<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>
その後(外部)モーダルは私のスクリプトとのオープンとなります。
<?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>
そしてここでは私の問題を始めています。
モーダルは開いていますが、画像を選択すると(ラジオボタンを画像で置き換える)、カバーとしてモーダルは閉じられ、データベースに何も書き込まれません。 ポップアップとしてすべてが機能していますが、モーダルではありません。
私はJS/AJAX/jQueryを使用してデータベースに書き込む必要があると思います。しかし、私はどのように...私はすでに多くのtutのを読むが、私はそれがどのように動作するのか分からない。
は、誰かが、私はこの作業を取得する方法をステップバイステップで私を説明することができれば...いい
そして、私はそれが終了した場合、スクリプトを実行し、情報を取得する方法を知っておく必要があります。私が前に言ったように、私は親指を生成するオプションを追加したい。だから私はプリローダーのモーダルを開き、親指を生成したいと思います。終了したら、カバーを選択するための2番目のモーダルを表示する必要があります。