javascript - 将jquery中的值发送到php并返回页面

标签 javascript php jquery html sql

我正在努力使用 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/

相关文章:

php - mysqli:在bind_param中传递常量

php - 在 IIS 上通过 PHP 进行 LDAPS 连接

php - 如何使用相同的 APC 缓存运行多个 PHP 站点?

javascript - AJAX-在发布中获取特定的数组值

javascript - 如果服务器不过滤JSONP的回调参数,是否会存在安全问题?

javascript - 如何将数组连接到对象数组内的数组?

javascript - 以有效的方式检查多个变量是否不为 null、undefined 或 empty

javascript - Owl Carousel 不适用于方向 RTL

javascript - 验证输入字符串并将其转换为新的 Date 对象

javascript - 将 google adsense 与 React + React Router 结合使用