【发布时间】:2012-01-23 03:59:19
【问题描述】:
我正在学习网页设计,遇到了一个我自己无法解决的难题。 我想将表单动态加载到使用 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
是否有解决方法或其他方法?谢谢!
编辑:
相册.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>
【问题讨论】:
-
动态加载表单到_____?
-
你能发布一些你正在使用的标记
-
JQuery.load 只是加载文件并填充选择器。它不执行 PHP。您需要使用不同的机制。
-
好的,我已经上传了源代码。我已经删掉了很多内容以尽量减少短信墙
标签: php jquery html ajax dynamic