Архив рубрики: WEB

Простая обработка XML файлов на PHP

Самый простой способ работать с XML в PHP — использовать функцию simplexml_load_file. Функция возвращает значение false в случае ошибки чтения и массив DOM в случае успеха. Не применимо к большим файлам, ибо весь файл в данном случае грузится в память.

Пример файла XML:

<?xml version="1.0" encoding="windows-1251" ?> 
<tables>
<table name="org">
<reqtable name="users">
<fromkey>id</fromkey> 
<tokey>orgid</tokey> 
</reqtable>
<reqtable name="places">
<fromkey>id</fromkey> 
<tokey>orgid</tokey> 
</reqtable>
<reqtable name="equipment">
<fromkey>id</fromkey> 
<tokey>orgid</tokey> 
</reqtable>
</table>
</tables>

Пример файла на PHP — обработчик:

if (file_exists('delete.xml')) {
    $xml = simplexml_load_file('delete.xml');
    var_dump($xml); // вывод структуры "для наглядности"
    echo "<hr>";
        foreach($xml->table as $data)
        {
         echo "Обработка таблицы: $data[name]<br/>";
         foreach($data->reqtable as $rectable)
         {
          echo "- зависимость $rectable[name] (в $rectable[name].$rectable->tokey нет значений $data[name].$rectable->fromkey)<br/>";   
         };
        };
} else {
    exit('Ошибка открытия схемы delete.xml');
}

Формирование штрихкода EAN13 на PHP

Собственно вот. Сначала хотел формировать его при помощи Google API, однако в конце концов остановился на том, что не гоже требовать постоянного подключения к интернету для отрисовки штрихкода. Посему нагуглил класс для PHP для вывода картинки со штрихкодом. Скачать можно и здесь. Дополнительно понадобятся шрифты ean13.ttf

Поиск в DBGrid плагине Jquery c выбором значения, загружаемого из вне

Клиентская часть:

                {name:'org.name',index:'org.name', width:155,stype:'select',                
                 searchoptions:{dataUrl: 'controller/server/getlistorgs.php'}
                },

Серверная часть:

    $SQL = "SELECT * FROM org WHERE active=1 ORDER BY name";
    $result = mysql_query( $SQL ) or die("Не могу выбрать список организаций!".mysql_error());
    $sts="<select name=orgs id=orgs>";
    while($row = mysql_fetch_array($result)) {
         $sts=$sts."<option value=$row[id] ";
	  if ($user->orgid==$row[id]){$sts=$sts."selected";};
	 $sts=$sts.">$row[name]</option>";
	};
    $sts=$sts."</select>";   
 echo $sts;

Не работают события после получения части страницы по Ajax..

При разработке одного и проектов столкнулся с проблемой, что код полученный на страницу Ajax запросом не доступен для обработки. Т.е. например на кнопку повешано событие которое подгружает содержимое в div, в котором в свою очередь есть обработка нажатия. Т.е. вот такой код работать НЕ будет:

Клиент:

$("#aaa").load("server.php");
$("#bbb").click(function(){
alert("Здрасти");
 });

Сервер:

<div id=bbb>Нажми меня</div>

Что делать? Решений несколько (гугл в помощь). Самое простое скрипт обработки вставить в тело подгружаемой страницы. Т.е правильно:

Клиент:

$("#aaa").load("server.php");

Сервер:

<div id=bbb>Нажми меня<id>
<script>$("#bbb").click(function(){ alert("Здрасти"); });</script>