我正在努力使用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页面,以加载正确的博客somrthing,如
$blogid = $_GET['blogig'];
$sql = mysql_query("SELECT * FROM blogs WHERE id='$blogid' LIMIT 1") or die(mysql_error());
但我正在绞尽脑汁想知道如何去做。
任何人都可以帮忙???
答案 0 :(得分:2)
将其放入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']
请注意如果有多个链接可以打开编辑模式,使用ID编辑将无效,您将需要使用一个类。
答案 1 :(得分:1)
您是否尝试在jQuery $.get()
中使用GET参数,例如:
"../_Includes/edit.php?blog_id=" + $('#edit').attr('rel')
你可以使用类似的东西在php中获得这个值:
$_GET['blog_id']
答案 2 :(得分:1)
H i,
在你的功能中
$('#edit').click(function (e) {
e.preventDefault();
// load the contact form using ajax
$.get("../_Includes/edit.php", function(data){ ...
您可以使用
发送ID $('#edit').click(function (e) {
e.preventDefault();
// load the contact form using ajax
$.get("../_Includes/edit.php?blogid=BLOGID", function(data){ ...
并且php可以将其作为常规参数进行选择。
我假设您调用此函数的页面知道博客ID是什么,因为它是当前页面?
就此而言,当PHP最初呈现页面时,将博客ID添加到页面主体可能很简洁。
<body id="BLOGID">
....
所以现在你的函数可以动态抓取它:
$('#edit').click(function (e) {
e.preventDefault();
var blogid = $("body").attr("id);
// load the contact form using ajax
$.get("../_Includes/edit.php?blogid="+blogid, function(data){ ...
或类似的变化..
...