[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: данные в XML
Саня
Ребятки, помогите пожалуйста. Задача состоит в том, чтобы с помощью одной кнопки, считать данные, введенные пользователем на странице (несколько текстовых полей + комбо) и переконвертировать их в фомат XML для дальнейшего поиска в xml базе данных. Огромнейшее СПАСИБО всем!



Спустя 4 часа, 23 минуты, 49 секунд (19.10.2009 - 14:55) olgatcpip написал(а):
А типа постом отправлять данные, а приемник берет данные и рисует xml код. т.е. сгенерировать xml файл надо?

Спустя 46 минут, 26 секунд (19.10.2009 - 15:41) smoke6969 написал(а):
Надо, но если есть другой способ, я бы очень хотел его узнать тоже, спасибо

Спустя 1 час, 30 минут, 55 секунд (19.10.2009 - 17:12) olgatcpip написал(а):
a ммм... другой способ генерировать xml файл? не ребята, я вас не понимаю. Извените.

Спустя 50 минут, 24 секунды (19.10.2009 - 18:03) smoke6969 написал(а):
Простите, нужно сгенерировать xml файл из введенных пользователем данных

Спустя 3 часа, 34 минуты, 59 секунд (19.10.2009 - 21:38) olgatcpip написал(а):
я так подумала, что да...

Спустя 12 часов, 42 минуты, 27 секунд (20.10.2009 - 10:20) smoke6969 написал(а):
Цитата (olgatcpip @ 19.10.2009 - 18:38)
я так подумала, что да...

Спасибо конечно, а нельзя немного подробнее? smile.gif

Спустя 4 часа, 27 минут, 47 секунд (20.10.2009 - 14:48) olgatcpip написал(а):
Цитата
Спасибо конечно, а нельзя немного подробнее?
что именно?
какая задача, какие у тебя были решения, что получилось, что не получилось?

Спустя 39 минут, 9 секунд (20.10.2009 - 15:27) smoke6969 написал(а):
Пользователь вводит данные в текстовые поля, селектбоксы, я сохраняю введенные данные в массив $_POST['data'] с переменными
$_POST['data']['0'] – данные с первого текстового поля
$_POST['data']['1'] – ...
$_POST['data']['2'] – ...
$_POST['data']['3'] – данные с первого селекта
$_POST['data']['4'] – ...
$_POST['data']['5'] – ...
$_POST['data']['6'] – данные последнего селекта

Как сформировать XML файл примерно такого вида:

<?xml version='1.0' encoding="windows-1251" standalone="yes"?>
<request>
<depart>$_POST['data']['0']</depart>
<arrive>$_POST['data']['1']</arrive>
<depDate>$_POST['data']['2']</depDate>
<arDate>$_POST['data']['3']</arDate>
<adult>$_POST['data']['4']</adult>
<child>$_POST['data']['5']</child>
<infant>$_POST['data']['6']</infant>
</request>

Извините за неверную формулировку smile.gif

Спустя 15 часов, 58 минут, 17 секунд (21.10.2009 - 07:25) olgatcpip написал(а):
в файле, который обрабатывает пост
PHP
$arr = array(
    0=>'depart',
   1 => 'arrive'
    ...
);
if(
$_POST){
   ob_clean();
   header('Content-Type: text/xml; charset=windows-1251');
   echo '<?xml version='1.0' encoding="windows-1251" standalone="yes"?>
'
;
   echo '<request>';
   foreach($_POST['data'] as $i=>$value){
         echo '<'.arr[$i].'>'.$value.'</'.arr[$i].'>';
   }
   echo '</request>';
   // проверь что будет если $_POST['data'] [$i] будет содержать слешики...

}else die('нет поста нет работы!');
будет генерироваться xml файл

Спустя 2 часа, 23 минуты, 19 секунд (21.10.2009 - 09:49) smoke6969 написал(а):
Спасибо огромнейшее, буду пробывать smile.gif

Спустя 4 минуты, 1 секунда (21.10.2009 - 09:53) Gram написал(а):
Почемуто я всегда думал, что xml должен быть в utf-8

Спустя 1 час, 12 секунд (21.10.2009 - 10:53) smoke6969 написал(а):
Файл index.php :

<body>

<form name="" action="add.php" method="post">

<p>Leaving from:</p>
<input name="data[0]" id="leavingFrom" type="text" value="">

<p>Going to: </p>
<input name="data[1]" id="goingTo" type="text" value="" />

<p>Depart: </p>
<input name="data[2]" id="departDate" size="20" maxlength="10" align="left"/></input>

<p>Return:</p>
<input name="data[3]" id="returnDate" size="20" maxlength="10" align="left"/></input>

<p>Adults</p>
<select style="width: 50px" class="selectbox" name="data[4]" id="adultsNum">
<option value="1">1</option>
<option value="2">2</option>
..............
</select>

<p>Children</p>
<select style="width: 50px" class="selectbox" name="data[5]" id="childNum">
<option value="0">0</option>
<option value="1">1</option>
.............
</select>

<p>Infants</p>
<select style="width: 50px" class="selectbox" name="data[6]" id="infantsNum">
<option value="0">0</option>
<option value="1">1</option>
......................
</select>

<br>
<br>
<input type="submit" name="add" value="добавить"> <br/>
</form>
</body>

Файл add.php

<?
$arr = array(
0=>'depart',
1=>'arrive',
2=>'depDate',
3=>'arDate',
4=>'adult',
5=>'child',
6=>'infant'

);
if($_POST)
ob_clean();
header('Content-Type: text/xml; charset=windows-1251');
echo '<?xml version='1.0' encoding="windows-1251" standalone="yes"?>';

echo '<request>';
foreach($_POST['data'] as $i=>$value){
echo '<'.arr[$i].'>'.$value.'</'.arr[$i].'>';
}
echo '</request>';

}else die('нет поста нет работы!');
?>

Браузер выдает:

Parse error: parse error, unexpected T_DNUMBER, expecting ',' or ';' in z:\home\xmlgen\www\add.php on line 15

Вроде с запятыми все ок, помогите пожалуйста

Спустя 1 час, 30 минут, 51 секунда (21.10.2009 - 12:24) Gram написал(а):
Посмотрите повнимательнее и увидите, что с запятыми не все в порядке. Подсветка php кода очень хорошо помогает в выявлении ошибок
PHP
echo '<?xml version='1.0' encoding="windows-1251" standalone="yes"?>';

Спустя 18 минут, 35 секунд (21.10.2009 - 12:42) olgatcpip написал(а):
PHP
Почемуто я всегда думал, что xml должен быть в utf-
каждому своё
PHP
Parse error: parse error, unexpected T_DNUMBER, expecting ',' or ';' in z:homexmlgenwwwadd.

1 - пхп код начинается с <? php
2 - ты знаешь, что если есть открывающая скобка, то должна и закрывающая быть. Я опечаталась. НИКОГДА не копируй вслепую!
Я добвлю не достающую скобку: посде if($_POST){

Спустя 6 минут (21.10.2009 - 12:48) Gram написал(а):
Че за глюк???

Спустя 4 минуты, 39 секунд (21.10.2009 - 12:53) olgatcpip написал(а):
я уже написала в раздел ошибки форума.

я там написала, что полсле if(пост)фигурную скобку поставить надо

Спустя 46 минут, 16 секунд (21.10.2009 - 13:39) sergeiss написал(а):
Я исправил ошибку, и написал о ней в теме http://phpforum.ru/index.php?showtopic=21957&hl=

Спустя 1 час, 6 минут, 41 секунда (21.10.2009 - 14:46) smoke6969 написал(а):
Простите дурака, все вроде подправил, но теперь Parse error: parse error, unexpected '[', expecting ',' or ';' in z:\home\xmlgen\www\add.php on line 20

<?php
$arr = array(
0=>'depart',
1=>'arrive',
2=>'depDate',
3=>'arDate',
4=>'adult',
5=>'child',
6=>'infant'

);
if($_POST)
{
ob_clean();
header('Content-Type: text/xml; charset=windows-1251');
echo '<?xml version="1.0" encoding="windows-1251" standalone="yes"?>';
echo '<request>';
foreach($_POST['data'] as $i=>$value)
{
echo '<'.arr[$i].'>'.$value.'</'.arr[$i].'>';
}
echo '</request>';
}
else die('нет поста нет работы!');
?>

Спустя 1 час, 8 минут, 2 секунды (21.10.2009 - 15:54) Gram написал(а):
А тяжело код выделить, чтоб его хоть читать можно было, а?
PHP
<?php
$arr 
= array(
    0=>'depart',
    1=>'arrive',
    2=>'depDate',
    3=>'arDate',
    4=>'adult',
    5=>'child',
    6=>'infant'
    
);
if(
$_POST) 
{
   ob_clean();
   header('Content-Type: text/xml; charset=windows-1251');
   echo '<?xml version="1.0" encoding="windows-1251" standalone="yes"?>';
   echo '<request>';
   foreach($_POST['data'] as $i=>$value) 
   
{
   echo '<'.arr[$i].'>'.$value.'</'.arr[$i].'>';
   }
   echo '</request>';
}
else die('нет поста нет работы!');


К переменной обращаются через знак доллара, повнимательнее просматривайте код, тем более знаете в какой строчке искать.

Вот вам программа для написания скриптов. в архиве файл русского языка и ключ. Эт прога будет цветом тыкать на ошибки, пользуйтесь на здоровье.
http://depositfiles.com/files/bbtiouipx

Спустя 50 минут, 29 секунд (21.10.2009 - 16:44) olgatcpip написал(а):
Gram ну дык чего не исправил?
PHP
echo '<'.$arr[$i].'>'.$value.'</'.$arr[$i].'>';

Спустя 7 минут, 33 секунды (21.10.2009 - 16:52) smoke6969 написал(а):
Теперь опять проблемы sad.gif

Notice: ob_clean(): failed to delete buffer. No buffer to delete. in z:\home\xmlgen\www\add.php on line 14
[Денвер: показать возможную причину ошибки]
Warning: Cannot modify header information - headers already sent by (output started at z:\home\xmlgen\www\add.php:1) in z:\home\xmlgen\www\add.php on line 15
цуеуккеуеуе134

PHP
<?php
$arr 
= array(
    
0=>'depart',
    
1=>'arrive',
    
2=>'depDate',
    
3=>'arDate',
    
4=>'adult',
    
5=>'child',
    
6=>'infant'
    
);
if(
$_POST
{
   
ob_clean();
   
header('Content-Type: text/xml; charset=windows-1251');
   echo 
'<?xml version="1.0" encoding="windows-1251" standalone="yes"?>';
   echo 
'<request>';
   foreach(
$_POST['data'] as $i=>$value
   {
   echo 
'<'.$arr[$i].'>'.$value.'</'.$arr[$i].'>';
   }
   echo 
'</request>';
}
else die(
'нет поста нет работы!');

Спустя 22 минуты, 18 секунд (21.10.2009 - 17:14) Gram написал(а):
да вырежь его оттуда, ты хоть знаешь для чего оно? На, читай каждую функцию, встречающуюся тебе в коде, до тех пор пока не...

Спустя 2 минуты, 30 секунд (21.10.2009 - 17:17) Gram написал(а):
Цитата (olgatcpip @ 21.10.2009 - 13:44)
Gram ну дык чего не исправил?
PHP
echo '<'.$arr[$i].'>'.$value.'</'.$arr[$i].'>';

Хотел чтоб он сам исправил - учиться надо а не списывать. Те кто списывает - остаются двоешниками.

Спустя 1 час, 4 минуты, 55 секунд (21.10.2009 - 18:22) olgatcpip написал(а):
Gram понятно

Спустя 17 часов, 13 минут, 10 секунд (22.10.2009 - 11:35) smoke6969 написал(а):
Спасибо всем огромное за терепение и что меня даже еще матом никто не обозвал, но еще не вечер... smile.gif В результате выполнения скрипта открывается страничко add.php, но как мне убрать с нее сообщения об ошибках, чтоб файл был больше похож на xml, сейчас:

<!--error--><br />
<b>Warning</b>: Cannot modify header information - headers already sent by (output started at z:\home\ajax\www\add.php:1) in <b>z:\home\ajax\www\add.php</b> on line <b>15</b><br />
<script language=JavaScript src='/errors__/phperror_js.php'></script><?xml version="1.0" encoding="windows-1251" standalone="yes"?><request><depart>New York</depart><arrive>Boston</arrive><depDate>22/10/2009</depDate><arDate>28/10/2009</arDate><adult>2</adult><child>3</child></request>

Error_Reporting(E_ALL & ~E_NOTICE); не помогает, непойму че ему не нравится там
кодировку на utf-8 менял - не помогло sad.gif

Спустя 49 минут, 19 секунд (22.10.2009 - 12:24) smoke6969 написал(а):
ура, проблема решена, с помощью проги notepad, сохранил кодировку в утф-8 без сигнатур и все гуд, спасибо всем
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.