Можно ли изменить свойство элемента HTML с помощью его идентификатора с помощью PHP?

Я хочу сделать что-то вроде этого:

страница A имеет ссылку на страницу B
страница B получает контент из базы данных и обрабатывает его
результат со страницы B отображается в блоке div на странице A

Обратите внимание, что я не хочу покидать страницу A, пока страница B обрабатывает информацию из базы данных.

Что я действительно пытаюсь сделать, так это избегать использования фреймов на сайте, и я хочу, чтобы страницы отображались в div. Это возможно?

Думаю, это вопрос новичка, но меня это действительно беспокоит, и я даже не знаю, с чего начать.

Я думаю, стоит иметь в виду, что всю работу, которую выполняет PHP, он выполняет еще до того, как вы что-нибудь отправите клиенту. Он творит всю свою магию, упаковывает страницу и затем отправляет ее клиенту целиком и полностью. Чтобы изменить ситуацию позже, потребуется что-то еще, например AJAX.

bsberry 17.12.2008 23:53
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
1
3 131
8
Перейти к ответу Данный вопрос помечен как решенный

Ответы 8

Вам нужны JavaScript и AJAX.

Я тоже не могу использовать ... это для класса в школе, и мне действительно нужно использовать PHP: S

Joum 17.12.2008 21:44

Я не знаю, можно ли предотвратить загрузку страницы только на стороне сервера.

MrChrister 17.12.2008 21:49

Вы хотите сделать это на стороне клиента, а не на стороне сервера. Мне лично нравится JQuery

Возможно, вам понадобится простая версия страницы B. Это очень часто. Дайте мне знать, если вам нужны примеры.

Ответ принят как подходящий

Вам нужен AJAX!

AJAX сделает это, но шаги будут немного отличаться от того, что вы описываете.

  • на странице A есть ссылка, которая вызывает функцию javascript
  • функция javascript выполняет вызов AJAX на страницу B, которая получает контент из базы данных и обрабатывает его.
  • результат со страницы B возвращается в функцию javascript
  • страница a отображает его в div

Короткий ответ: нет.

Для этого вам понадобятся клиентские скрипты или AJAX.

Проверьте XAJAX.

Это библиотека AJAX для PHP, которая будет делать то, что вы хотите. Он пишет Javascript, необходимый для обработки материалов на стороне клиента.

Вы сделаете следующее. 1. Включите библиотеки XAJAX на свои php-страницы. 2. Зарегистрируйте свои функции 3. Вызовите их на стороне клиента из javascript, используя xajax_phpfunctionName ().

Как уже говорили все, это нужно сделать с помощью какой-то настройки AJAX. Если вы более знакомы с PHP, чем с JavaScript (или с серверными сценариями, чем с клиентскими), я также рекомендую вам проверить XAJAX. [Который был отправлен Адамом, когда я отвечал.]

В этом примере, вероятно, есть миллион ошибок, но он должен помочь вам встать на верный путь :)

файл a.php

<html>
<body>
<script type = "text/javascript" src = "stuff.js"></script>
Data to process please: <input type = "text" name = "datatoprocess" id = "datatoprocess" />
<br />
<input type = "button" value = "Do Something" onclick = "dostuff();" />
<hr />
<div id = "resultarea">
</div>
</body>
</html>

файл b.php

<?php

$message = '';
if ( isset( $_REQUEST['datatoprocess'] ) ) {
    $datatoprocess = $_REQUEST[ 'datatoprocess' ];
    if ( strlen( $datatoprocess ) > 0 ) {
        if ( $datatoprocess == 'foo' ) {
            $message = '<span style = "color:#ffff00;background:#ff0000;">bar</span>';
        } else {
            $message = 'You sent me: &quot;'.htmlentities($datatoprocess).'&quot;';
        }
    } else {
        $message = 'That is really short data.';
    }
} else {
    $message = 'No data to process in request?';
}

echo $message;

?>

файл stuff.js

// poor man quick and dirty ajax :|

function dostuff() {
    var xmlHttp=GetXmlHttpObject();
    if (xmlHttp==null) {
        alert ("Browser does not support HTTP Request.");
        return;
    } 
    var datatoprocess = document.getElementById('datatoprocess').value;
    var url = "b.php"
                 +"?datatoprocess = " + escape(datatoprocess)
    ;
    xmlHttp.onreadystatechange = function() {
        if (xmlHttp.readyState==4 || xmlHttp.readyState= = "complete") { 
            var AjaxAnswer = xmlHttp.responseText ;
            document.getElementById('resultarea').innerHTML = AjaxAnswer;
        }
    };
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);
}


function GetXmlHttpObject() { 
    var objXMLHttp=null;
    if (window.XMLHttpRequest) {
        objXMLHttp = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        objXMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    return objXMLHttp;
} 

Что ж, изначально я хотел заставить PHP сбрасывать содержимое HTML (и PHP) страницы в DIV на другой странице (я знаю, звучит очень странно). Вы делаете это с помощью этой функции:

ob_start();  
include($filename);  
$return_str = ob_get_contents();  
ob_end_clean(); 

Если вы сделаете это так, он проанализирует PHP в файле $ filename и вернет результат в виде строки. Чтобы сделать дамп и показать содержимое, просто удалите последнюю строку.

Я вроде как новичок, и это, вероятно, не лучший способ сделать это, но у меня это сработало. Надеюсь, поможет.

Другие вопросы по теме