2013-05-21 2 views
0

На моем веб-сайте у меня есть ссылка, чтобы открыть модальное окно в HTML, и это отлично работает, когда я пытаюсь изменить это на ссылку PHP и добавить переменную к ссылке в окне модального окна не открывается.Открыть модем JQuery с ссылкой PHP

Вот мой код.

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.' 

modal box отлично работает, есть ли другой способ, которым я могу отправить переменную?

ответ

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}. section – user1691024

+0

Я предполагал, что это PHP, который должен быть отделен от встроенного html. Не был уверен, что фигурные скобки были для параметра php или html. – Alex

Смежные вопросы