Как запустить php-функцию при перезагрузке страницы? [Дубликат]

Строка ошибки «Ссылка на объект, не установленная на экземпляр объекта.» указывает, что вы не назначили экземпляр объекта объектной ссылке, и все же вы получаете доступ к свойствам / методам этого объекта.

например: скажем, у вас есть класс под названием myClass и он содержит одно свойство prop1.

public Class myClass
{
   public int prop1 {get;set;}
}

Теперь вы получаете доступ к этому prop1 в каком-то другом классе, как показано ниже:

public class Demo
{
     public void testMethod()
     {
        myClass ref = null;
        ref.prop1 = 1;  //This line throws error
     }
}

выше строки выдает ошибку, потому что ссылка класса myClass объявлена, но не создана, или экземпляр объекта не назначается referecne этого класса.

Чтобы исправить это, вам нужно создать экземпляр (присвоить объект ссылке на этот класс).

public class Demo
{
     public void testMethod()
     {
        myClass ref = null;
        ref = new myClass();
        ref.prop1 = 1;  
     }
}
0
задан user1017072 4 November 2011 в 16:36
поделиться

2 ответа

Если вы обновляете страницу, вы эффективно перезагружаете ее с сервера, поэтому любые события «onload» снова загорятся. Страница будет отображаться снова с нуля. Тем не менее, вы можете вызвать скрипт PHP, используя AJAX в каком-то «загружаемом» Javascript-прослушивателе. например с JQuery:

 <html>
<head>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
    <script type="text/javascript">

    $(document).ready( function () {

        setTimeout("location.reload(true);", 2000);

        $.get('home.html', function(ret){
            $('body').html(ret);
        });

    });

    </script>
    </head>
    <body>
        <h1>Test</h1>

    </body>
    </html>

Остерегайтесь вызывать setTimeout () рекурсивно, хотя он может сделать страницу невосприимчивой с течением времени. Вы можете найти это полезным:

http://www.erichynds.com/javascript/a-recursive-settimeout-pattern/

0
ответ дан Mick Sear 25 August 2018 в 17:59
поделиться

Боюсь, что ответ отрицательный. К тому времени, когда JavaScript был запущен на вашей странице, серверная часть (PHP) уже завершила обработку. Лучше всего выполнить то, что вам нужно до загрузки страницы, или выполнить ее только с помощью JavaScript.

1
ответ дан NJLaPrell 25 August 2018 в 17:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: