我正在努力使用 simplemodal 为我的博客加载编辑文本区域。我让它工作得很好,但我需要以某种方式向加载内容的 php 页面发送一个值。让我展示代码并进行更多解释。 确定一个标签来加载编辑器
<a class="blog_btns" id="edit" href="">Edit</a>
JQuery 加载到简单模式窗口
jQuery(function($) {
var contact = {
message: null,
init: function() {
$('#edit').click(function(e) {
e.preventDefault();
// load the contact form using ajax
$.get("../_Includes/edit.php", function(data) {
// create a modal dialog with the data
$(data).modal({
closeHTML: "<a href='#' title='Close' class='modal-close'>x</a>",
position: ["15%", ],
overlayId: 'contact-overlay',
containerId: 'contact-container',
onOpen: contact.open,
onShow: contact.show,
onClose: contact.close
});
});
});
},
open: function(dialog) {
dialog.overlay.fadeIn(200, function() {
dialog.container.fadeIn(200, function() {
dialog.data.fadeIn(200, function() {
$('#contact-container').animate({
height: h
}, function() {
$('#contact-container form').fadeIn(200, function() {
});
});
});
});
});
},
show: function(dialog) {
//to be added later
},
close: function(dialog) {
dialog.overlay.fadeOut(200, function() {
$.modal.close();
});
},
};
contact.init();
});
加载内容和textarea的php页面
<?php
session_start();
define('HOSTNAME', '#');
define('DB_USERNAME', '#');
define('DB_PASSWORD', '#');
define('DATABASE', '#');
$link = mysql_connect(constant('HOSTNAME'), constant('DB_USERNAME'), constant('DB_PASSWORD')) or die("Database connection error, please check!");
mysql_select_db(constant('DATABASE'), $link) or die("Connection to the defined database not possible, please check!");
$sessionid = base64_decode($_SESSION['id']);
$sql = mysql_query("SELECT * FROM blogs WHERE id=233 LIMIT 1") or die(mysql_error());
while ($row = mysql_fetch_array($sql)) {
$id = $row['id'];
$title = $row['title'];
$body = $row['body'];
$tag_array = array();
$result = mysql_query("SELECT tag FROM tags WHERE blog_id='$id' LIMIT 5") or die(mysql_error());
while ($row = mysql_fetch_assoc($result)) {
$rtag = str_replace(' ', '', $row['tag']);
$tag_array[] = $rtag;
}
$tag_array = implode($tag_array, ",");
}
?>
<div class="content">
<div class="reply" style="display:none;"></div><form name="editblog" id="editblog" action="#" method="post"><font color="#FFF"><strong>Title: </strong></font><input name="blogtitle" id="blogtitle" type="text" id="title" size="80" maxlength="255" value="<?php echo $title; ?>" /><br /><br />
<textarea cols="60" id="editblogbody" name="editblogbody" rows="20"><?php echo $body; ?></textarea><br />
Please separate tages with a <strong>comma</strong>.<br />
<font color="#FFF"><strong>Tags:</strong></font><input name="tags" id="tags" type="text" size="80" maxlength="255" value="<?php echo $tag_array; ?>" /><br /><br />
<input type="submit" value="Post Blog" />
<span id="blogFormProcessGif" style="display:none;"><img src="../_Images/loading.gif" width="28px" height="28px" alt="Loading" /></span></form>
<script>CKEDITOR.replace("editblogbody");</script> </div>
因此窗口可以很好地加载来自 sql 查询的内容,但我需要通过在开始时单击的链接发送博客 ID 来使 sql 查询动态化。我正在考虑使用 rel 属性返回值。我需要将此值发送到 sql 查询的 php 页面以加载正确的博客之类的东西
$blogid = $_GET['blogig'];
$sql = mysql_query("SELECT * FROM blogs WHERE id='$blogid' LIMIT 1") or die(mysql_error());
但我正在绞尽脑汁想办法做到这一点。
有人能帮忙吗???
最佳答案
将其放入 rel
中即可。使用 data-id="123"
并使用 $(this).data('id')
获取它更好。使用 href
没问题,例如href="#123"
。
<a class="blog_btns" id="edit" href="#" data-id="123">Edit</a>
<a class="blog_btns" id="edit" href="#" rel="123">Edit</a>
<a class="blog_btns" id="edit" href="#123">Edit</a>
您将其添加到 URL 查询字符串
$('#edit').click(function(e) {
var url="../_Includes/edit.php?blog_id=" + $(this).data('id');
// var url="../_Includes/edit.php?blog_id=" + this.rel;
// var url="../_Includes/edit.php?blog_id=" + this.href.replace('#', '');
$.get(url, function(data){
// etc
然后使用 $_GET['blog_id']
在 PHP 中获取它
请注意如果有多个链接可以打开一个编辑模式,使用 id 编辑将不起作用,您需要使用一个类。
关于javascript - 将jquery中的值发送到php并返回页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20869047/