php - 使用此 Facebook 风格 Lightbox - 请求 AJAX - 在页面上覆盖多个按钮

标签 php javascript ajax mootools lightbox

我正在使用 David Walsh 的以下灯箱覆盖层来创建一个覆盖层,该覆盖层来自页面上多个按钮的点击功能。

http://davidwalsh.name/facebook-lightbox

我遇到的问题是,这段代码是为每页调用它而构建的。我需要这样做,以便在 php while 循环中创建多个按钮时,它会创建一个带有该 while 循环的对象 id 的隐藏输入字段和一个调用 javascript 的按钮输入字段。

这是我希望每次通过 while 循环创建的表单对象类型:

<input type="hidden" id="personName" value="postToAjax" /> 
<input type="button" value="Add a new person" id="add" class="submit" />

这是它调用的 Javascript:

<script>
    window.addEvent('domready',function(){

        document.id('add').addEvent('click',function(){

            ajaxFace = new LightFace.Request({
                url: 'ajax.php',
                buttons: [
                    { title: 'Add A Person', event: function() { 
                                            alert('hi!'); 
                                            }, 
                                            color: 'green' },
                    { title: 'Cancel', event: function() { this.close(); } }
                ],
                request: { 
                    data: { 
                        day: document.id('personName').value || 'PersonWhoIsTooCoolToGiveTheirName' 
                    },
                    method: 'post'
                },
                title: 'Add a name to this person'
            }).open();

        });
   });      
</script>

一些标题内容:

<link rel="stylesheet" href="../Assets/lightface.css" />
<script src="https://ajax.googleapis.com/ajax/libs/mootools/1.3.0/mootools.js"></script>
<script src="../Source/LightFace.js"></script>
<script src="../Source/LightFace.Request.js"></script>
    <!-- this was the code that in the html doc to begin with in DW's code -->
<script src="../Source/addpersonlightbox.js"></script>

我希望ajax将object_id发布到接收它的php文件中,然后我应该能够在该php脚本中执行其他所有操作。

我想我需要将js中的document.id更改为带有类或rel的内容。我希望得到一些关于放在这里的内容的帮助。

    request: { 
                data: { 
                    day: document.id('personName').value || 'PersonWhoIsTooCoolToGiveTheirName' 
                },
                method: 'post'
            },

此外,我认为我需要更改两个输入字段,以添加除 id 之外的其他内容以放入 php 变量。例如 id="personName",但我不知道它是否应该是类或 del 或其他内容别的。然后我不知道这将如何与 javascript 一起工作。

提前致谢!

<input type="hidden" id="personName" value="postToAjax" /> 
<input type="button" value="Add a new person" id="add" class="submit" />

最佳答案

好吧。使用类,那么当你知道答案时为什么还要问呢? :)

var attachLightFace = function() {

    new LightFace.Request({
        url: 'ajax.php',
        buttons: [
            {
            title: 'Add A Person',
            event: function() {
                alert('hi!');
            },
            color: 'green'},
        {
            title: 'Cancel',
            event: function() {
                this.close();
            }}
        ],
        request: {
            data: {
                name: this.getPrevious().get("value").clean()
            },
            method: 'post'
        },
        title: 'Add a name to this person'
    }).open();

};


document.getElements('button.submit').addEvent('click', attachLightFace);

这将附加到所有类型为提交的按钮,并且如果它们前面有输入,则该按钮将起作用,其值将传递到请求。

这样做的缺点是许多事件处理程序的占用空间。您还可以使用委托(delegate),例如

document.id('container').addEvent('click:relay(button.submit)', AttachLightFace) - 这将添加一个事件来处理您拥有或可能拥有的任何按钮将来。

关于php - 使用此 Facebook 风格 Lightbox - 请求 AJAX - 在页面上覆盖多个按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9559045/

相关文章:

php - 为图像添加动态帧

php - 在 PHP 中的单词前后添加文本

javascript - 如何仅在具有特殊阿拉伯字符的范围内替换价格?

javascript - 我可以从同一个对象 javascript 中调用私有(private)函数吗

java - <h :selectOneMenu>'s value not submitted correctly

javascript - 自定义 html 数据列表下拉列表

php - 用于将图像上传到 sftp 的特定 php 和 swift 代码

javascript - Vue 中的数据未更新

javascript - 定期调用 Ajax

php - 为什么 w3schools 的这个上传脚本没有上传到我的 Apache2 Ubuntu 服务器上?