">× " class="accordion-body collapse"> -6ren">
gpt4 book ai didi

php - 数据库提交后立即将内容附加到页面

转载 作者:行者123 更新时间:2023-11-30 01:34:46 24 4
gpt4 key购买 nike

<div class="accordion" id="accordion2">
<?php $info= mysql_query("SELECT id, title, description FROM event"); ?>
<?php while ($row = mysql_fetch_array($info, MYSQL_NUM)): ?>
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapse<?php print $row[0]; ?>"><?php print $row[1]; ?></a><span class="delete" id="<?php print $row[0]; ?>">×</span>
</div>
<div id="collapse<?php print $row[0]; ?>" class="accordion-body collapse">
<div class="accordion-inner">
<div class="row-fluid">
<div class="span6">
<?php print $row[2]; ?>
</div>
<div class="span6 ppl">
<ul>

</ul>
</div>
</div>
</div>
</div>
</div>
<?php endwhile; ?>
</div>

我有一个非常简单的方法来打印我的 twitter bootstrap Accordion 。我将其显示在我的页面上,并且在 Accordion 本身顶部还有一个表单,我可以从其中使用 ajax 将另一个表单提交到数据库中。表格如下:

<form class="form">
<fieldset>
<legend>Stuff</legend>
<input class="class1" type="text" placeholder="xx">
<input class="class2" type="text" placeholder="xx">
<input class="class3" type="password" placeholder="xx">
<textarea maxlength="320" rows="5" class="class4" placeholder="xx"></textarea>
<div class="submit btn">Add</div>
</fieldset>
</form>

这是 jQuery:

$(".form .submit").bind("click", function() {
var title = $(".form input.class1").val();
var email = $(".form input.class2").val();
var stuff1 = $('.form input.class3').val();
var stuff2 = $('.form textarea.class4').val();

if (title && email) {
var data = {title: title, email: email, stuff1: stuff1, stuff2: stuff2};

$.post("action.php", data, function() {
$(".form input, .form textarea").val("");
alert('done');
});
}
else {
alert('something went wrong');
}
});

最后是我的action.php 文件:

<?php require('access.php');

if ($_POST['title'] && $_POST['email']) {

$title = $_POST['title'];
$email = $_POST['email'];
$stuff1 = $_POST['stuff1'];
$stuff2 = $_POST['stuff2'];

mysql_query("INSERT INTO events (title, email, stuff1, stuff2) VALUES('$title', '$email', '$stuff1', '$stuff2')");

}

一切正常,但就像标题所说,我希望输入的信息作为新的 Accordion 组预先添加到 Accordion div 中(无需刷新页面)。我的大脑拒绝在这方面与我合作,因为对我来说,如果我提交这些值,我必须向数据库发出另一个请求,以获取新事件的新生成的 ID,以使我的 Accordion 布局正常工作。做什么?

很抱歉使用了不推荐使用 mysql 的方式:O

最佳答案

所以除了 mysql 功能之外,您所要做的就是在元素前面添加一些 html。您的帖子中已经有一个回调函数,因此您需要做的就是让它实际执行某些操作,即

$.post('action.php', data, function() {
var newID = 123; // get this from the response text
$('div.accordion-inner').prepend('<div class="row-fluid"><div class="span6">'+newID +'</div><div class="span6 ppl"><ul></ul></div></div>');
});

这将尝试将 div 按照指定添加到 div.accordion-inner

只需将前面的内容替换为您要查找的 html 即可。

作为补充说明,http://php.net/manual/en/function.mysql-insert-id.php将为您提供在 MySQL 连接上执行的最后一次 INSERT 的 PRIMARY KEY 值

关于php - 数据库提交后立即将内容附加到页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17055261/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com