2013-05-21 21 views
0

在我的網站上,我有一個鏈接來打開HTML中的模式窗口,這工作正常,當我嘗試並將其更改爲PHP鏈接並將變量添加到鏈接的代碼模式窗口不打開。用PHP鏈接打開一個JQuery模式

這是我的代碼。

PHP

echo "<a href=\"#accSettings1?ip_address={$ip_address}\" class='btn btn-small btn-primary hidden-tablet hidden-phone' data-toggle='modal' data-original-title='add'>Add</a>"; 

HTML

<div id="accSettings1" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel1" aria-hidden="true"> 

JQUERY

var Modal = function (element, options) { 
this.options = options 
this.$element = $(element) 
    .delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this)) 
this.options.remote && this.$element.find('.modal-body').load(this.options.remote) 
} 

Modal.prototype = { 

    constructor: Modal 

, toggle: function() { 
    return this[!this.isShown ? 'show' : 'hide']() 
    } 

, show: function() { 
    var that = this 
     , e = $.Event('show') 

    this.$element.trigger(e) 

    if (this.isShown || e.isDefaultPrevented()) return 

    this.isShown = true 

    this.escape() 

    this.backdrop(function() { 
     var transition = $.support.transition && that.$element.hasClass('fade') 

     if (!that.$element.parent().length) { 
     that.$element.appendTo(document.body) //don't move modals dom position 
     } 

     that.$element 
     .show() 

     if (transition) { 
     that.$element[0].offsetWidth // force reflow 
     } 

     that.$element 
     .addClass('in') 
     .attr('aria-hidden', false) 

     that.enforceFocus() 

     transition ? 
     that.$element.one($.support.transition.end, function() { that.$element.focus().trigger('shown') }) : 
     that.$element.focus().trigger('shown') 

    }) 
    } 

, hide: function (e) { 
    e && e.preventDefault() 

    var that = this 

    e = $.Event('hide') 

    this.$element.trigger(e) 

    if (!this.isShown || e.isDefaultPrevented()) return 

    this.isShown = false 

    this.escape() 

    $(document).off('focusin.modal') 

    this.$element 
     .removeClass('in') 
     .attr('aria-hidden', true) 

    $.support.transition && this.$element.hasClass('fade') ? 
     this.hideWithTransition() : 
     this.hideModal() 
    } 

, enforceFocus: function() { 
    var that = this 
    $(document).on('focusin.modal', function (e) { 
     if (that.$element[0] !== e.target && !that.$element.has(e.target).length) { 
     that.$element.focus() 
     } 
    }) 
    } 

, escape: function() { 
    var that = this 
    if (this.isShown && this.options.keyboard) { 
     this.$element.on('keyup.dismiss.modal', function (e) { 
     e.which == 27 && that.hide() 
     }) 
    } else if (!this.isShown) { 
     this.$element.off('keyup.dismiss.modal') 
    } 
    } 

, hideWithTransition: function() { 
    var that = this 
     , timeout = setTimeout(function() { 
      that.$element.off($.support.transition.end) 
      that.hideModal() 
     }, 500) 

    this.$element.one($.support.transition.end, function() { 
     clearTimeout(timeout) 
     that.hideModal() 
    }) 
    } 

, hideModal: function (that) { 
    this.$element 
     .hide() 
     .trigger('hidden') 

    this.backdrop() 
    } 

, removeBackdrop: function() { 
    this.$backdrop.remove() 
    this.$backdrop = null 
    } 

, backdrop: function (callback) { 
    var that = this 
     , animate = this.$element.hasClass('fade') ? 'fade' : '' 

    if (this.isShown && this.options.backdrop) { 
     var doAnimate = $.support.transition && animate 

     this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />') 
     .appendTo(document.body) 

     this.$backdrop.click(
     this.options.backdrop == 'static' ? 
      $.proxy(this.$element[0].focus, this.$element[0]) 
     : $.proxy(this.hide, this) 
    ) 

     if (doAnimate) this.$backdrop[0].offsetWidth // force reflow 

     this.$backdrop.addClass('in') 

     doAnimate ? 
     this.$backdrop.one($.support.transition.end, callback) : 
     callback() 

    } else if (!this.isShown && this.$backdrop) { 
     this.$backdrop.removeClass('in') 

     $.support.transition && this.$element.hasClass('fade')? 
     this.$backdrop.one($.support.transition.end, $.proxy(this.removeBackdrop, this)) : 
     this.removeBackdrop() 

    } else if (callback) { 
     callback() 
    } 
    } 
} 

所以,如果我刪除

?ip_address='.$ip_address.' 

模式框工作正常,有另一種方式,我可以發送變量?

回答

1

哈希應該來的參數

href="?ip_address='.$ip_address.'#accSettings1" 
1

我不認爲你可以使用單引號的HTML屬性,如class="btn";嘗試使用雙引號並在必要時將引號轉義。

+0

我試過了,但它仍然沒有 – user1691024

0

我只是將初始引號改爲單引號,因此HTML可以保留爲雙引號。

echo '<a href="#accSettings1?ip_address=' . $ip_address . '" class="btn btn-small btn-primary hidden-tablet hidden-phone" data-toggle="modal" data-original-title="add">Add</a>'; 

編輯:刪除花括號

+0

感謝嗨的工作,這行代碼顯示錯誤後但我找不到任何想法 – user1691024

+0

,以便在。{ip_address}周圍顯示錯誤。部分 – user1691024

+0

我猜測是PHP需要與內聯html分開。不確定的大括號是PHP或HTML參數。 – Alex