我在學習網頁設計,遇到了一個我自己弄不明白的難題。 我想動態地將表單加載到使用jQuery中。我的代碼如下所示:用jQuery動態加載表單
在主文件中:
$('#left_colum').click(function(e) {
e.preventDefault();
$('#column_left').load(create_album.php);
});
create_album.php - >它包含實際的形式,以及處理它在POST的PHP腳本。這是非常基本的。如果我自己加載my_form.php,它工作正常。如果我像上面那樣動態加載它; HTML的作品,但POST PHP腳本不執行。
還有另一個有趣的行爲;如果我點擊動態加載表單上的提交按鈕,它將全部消失(與「正確」加載的表單不同)。
我已經經歷了很多帖子和教程,除了使用iframe之外,我還找不到解決方案。似乎人們通常不會動態加載除基本HTML之外的任何內容,而無需與服務器通話。我是新來的:P
是否有修復或其他方式?謝謝!
編輯:
albums.php:
<?php
include 'init.php';
if(!logged_in()) {
header("Location: index.php");
exit();
}
?>
<h3>Albums</h3>
<?php
/*Output albums*/
$albums = get_albums();
if(empty($albums)) {
echo("You don't have any albums");
} else {
/*Changed: uploading images is now part of the albums sections*/
foreach($albums as $album) {
echo '<p><a class="album_view" id="'.$album['id'].'" href="">', $album['name'], '</a> (', $album['count'], ' images)<br/>Description: ', $album['description'], '...<br/><a class="album_edit" id="'.$album['id'].'" href="">Edit</a>/<a href="delete_album.php?album_id=', $album['id'], '">Delete</a>/<a class="upload_image" id="'.$album['id'].'" href="">Upload</a></p>';
}
}
?>
<script type="text/javascript">
$(document).ready(function() {
/*Creating albums*/
$('#create_album').click(function(e) {
e.preventDefault();
$('#column_left').load(album.php);
});
});
create_album.php:
<h3>Create Album</h3>
<?php
if(isset($_POST["album_name"], $_POST["album_description"])) {
echo 'got here';
$album_name = $_POST["album_name"];
$album_description = $_POST["album_description"];
$errors = array();
if(empty($album_name) || empty($album_description)) {
$errors[] = "Album name and description required";
} else {
if(strlen($album_name) > 55 || strlen($album_description) > 255) {
$errors[] = "Name/description too long";
}
}
if(!empty($errors)) {
foreach($errors as $error) {
echo $error, "<br/>";
}
} else {
echo 'got here, too';
//create_album($album_name, $album_description);
//header("Location: albums.php");
}
}
?>
<form action="" method="post">
<p>Name:<br/><input type="text" name="album_name" maxlength="55"/></p>
<p>Description:</br><textarea name="album_description" rows="6" cols="35" maxlength="255"></textarea></p>
<p><input type="submit" value="Create"/></p>
</form>
動態加載形成一個_____? – 2011-12-18 19:41:43
你可以發佈一些你正在使用的標記嗎 – Rafay 2011-12-18 19:42:14
JQuery.load只是加載文件並填充選擇器。它不執行PHP。你需要使用不同的機制。 – lucifurious 2011-12-18 19:46:51