Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> из xml в select, как правельно брать данные из xml и помещать в select
leonw  
 ۩     Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 108
Пользователь №: 40712
На форуме: 1 год, 11 месяцев, 1 день
Карма:




Здравствуйте! можно примерчик чтобы можно было разобрать как из хмл в селект данные запихнуть?
XML:
<?xml version="1.0" encoding="utf-8"?>
<category>
<book
category="kat1">
выбор из категории 1 = 1
выбор из категории 1 = 2
выбор из категории 1 = 3
</book>
</category>


<?php
header('Content-type: text/html; charset=utf-8');
$xml = simplexml_load_file("file.xml") or die("Error: Cannot create object");
<?php echo "
<select name="
category">
<option>Выбрать все</option>
</select>
"
;?>

если можно соблюдая правила заполнение

Это сообщение отредактировал leonw - 19.02.2016 - 09:55
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
drouZ  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 117
Пользователь №: 23509
На форуме: 6 лет, 3 месяца, 18 дней
Карма: 2





<?xml version="1.0" encoding="utf-8"?>
<category>
<book
category="kat1">
<page>
data1</page>
<page>
data2</page>
<page>
data3</page>
<page>
data4</page>
</book>
</category>





$xml = simplexml_load_file("1.xml") or die("Error: Cannot create object");


if(!empty($xml->book->page))
{
$agrs = $xml->book->page;

echo "<select name=\"category\">";

foreach ($agrs as $vals)
{
echo "<option>$vals</option>";
}

echo "</select>";
}
PM
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
leonw  
 ۩     Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 108
Пользователь №: 40712
На форуме: 1 год, 11 месяцев, 1 день
Карма:




а ссылки как можно вывести?

<?xml version="1.0" encoding="utf-8"?>
<category>
<book
category="kat1">
<page><a
href=11.php>data1</a></page>
<page><a
href=11.php>data2</a></page>
<page>
data3</page>
<page>
data4</page>
</book>
</category>


Это сообщение отредактировал leonw - 20.02.2016 - 11:11
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
drouZ  
[x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 117
Пользователь №: 23509
На форуме: 6 лет, 3 месяца, 18 дней
Карма: 2




смотри, если плохо ориентируешься в в том, что у тебя выгружается из хмл, то напиши функцию


function debug($v)
{
print "<pre>";
print_r($v);
print "</pre>";
}



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

<?xml version="1.0" encoding="utf-8"?>
<category>
<book
category="kat1">
<page>
<title>
data1</title>
<href>
11.php</href>
</page>
<page><title>
data2</title>
<href>
12.php</href>
</page>
<page>
data3</page>
<page>
data4</page>
</book>
</category>



применив


$xml = simplexml_load_file("1.xml") or die("Error: Cannot create object");

debug($xml);

function debug($v)
{
print "<pre>";
print_r($v);
print "</pre>";
}


получил:


SimpleXMLElement Object
(
[book] => SimpleXMLElement Object
(
[@attributes] => Array
(
[category] => kat1
)

[page] => Array
(
[0] => SimpleXMLElement Object
(
[title] => data1
[href] => 11.php
)

[1] => SimpleXMLElement Object
(
[title] => data2
[href] => 12.php
)

[2] => data3
[3] => data4
)

)

)


а далее, проведи аналогию с тем, что я раньше писал. Труда это не должно составить. Думаю, это все твои последующие вопросы тоже решит.
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
leonw  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 108
Пользователь №: 40712
На форуме: 1 год, 11 месяцев, 1 день
Карма:




Спасибо!
<?php
$xml = simplexml_load_file("3.xml") or die("Error: Cannot create object");
if(!empty($xml->book->page))
{
$agrs = $xml->book->page;
foreach ($agrs as $vals)
{
echo "$vals"."<br>";
echo $vals['name']."<br>";
}
}

?>


<?xml version="1.0" encoding="utf-8"?>
<category>
<book
name="kat1">
<page
name="111.php">data1</page>
<page
name="222.php">data2</page>
<page
name="333.php">data3</page>
<page
name="444.php">data4</page>
</book>
</category>

вот так вот сделал. B)

Это сообщение отредактировал leonw - 21.02.2016 - 14:42
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
leonw  
 ۩  [x]    Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 108
Пользователь №: 40712
На форуме: 1 год, 11 месяцев, 1 день
Карма:




а как динамическое чтение сделать?
пр:

<form name="gbook" target="_self" method="post" action="gbook_add.php">
<
table><tr><td>
<
select name="catalog2" onChange="redirect(this.options.selectedIndex);" onClick="redirect(this.options.selectedIndex);">
<
option value="">vibor</option>
<
option value="qwe" id="1">1111111</option>
<
option value="qwe" id="2">2222222222</option>
<
option value="qwe" id="3">33333</option>
<
option value="qwe" id="4">44444</option>
<
option value="qwe" id="5">5555555</option>
<
option value="qwe" id="6">66666666</option>
<
option value="qwe" id="7">7777777</option>
</
select>
<
/td></tr></table>
<
table><tr><td>
<
select name="catalog3" onchange="modelvalue();">
<
option value="">vibirete ulicu</option>
</
select>
<
/td></tr></table>


<
script>
var groups=document.gbook.catalog2.options.length
var group=new Array(groups)
for (i=0; i<groups; i++)
group[i]=new Array()
group[1][0]=new Option("1111111111","1")
group[1][1]=new Option("122111111","2")
group[2][0]=new Option("22211111","3")
group[2][1]=new Option("222222","4")
group[3][0]=new Option("333111","5")
group[4][0]=new Option("444","6")
group[4][1]=new Option("44444","7")
group[5][0]=new Option("555555","8")
group[6][0]=new Option("6666","9")
group[7][0]=new Option("7777","10")

document.gbook.catalog2.index = document.gbook.catalog2.options[0].text;
var temp=document.gbook.catalog3;
function redirect(x){
for (m=temp.options.length-1;m>0;m--)
temp.options[m]=null
for
(i=0;i<group[x].length;i++){
temp.options[i]=new Option(group[x][i].text,group[x][i].value)
}
var prevalue = document.catalog2.value
var sufvalue = temp.value
document.revision.productid.value=(prevalue+"-"+sufvalue)
}
function modelvalue(){
var prevalue2=document.gbook.catalog2.value
var sufvalue2=document.gbook.catalog3.value
document.revision.productid.value=(prevalue2+"-"+sufvalue2)
}
</script>

</
form>
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
drouZ  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 117
Пользователь №: 23509
На форуме: 6 лет, 3 месяца, 18 дней
Карма: 2




чтение чего и откуда и для чего?

если читать значения из селекта, и на сайте подключен jquery, тогда лучше его использовать. кода будет гораздо меньше
PM
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
leonw  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 108
Пользователь №: 40712
На форуме: 1 год, 11 месяцев, 1 день
Карма:




попробую объяснить :D
<?xml version="1.0" encoding="utf-8"?>
<category>
<book
name="index">
<page
name="111.php">data1</page>
<page
name="222.php">data2</page>
<page
name="333.php">data3</page>
<page
name="444.php">data4</page>
</book>
<book
name="data1">
<page
name="111.php">data1a</page>
<page
name="222.php">data1b</page>
</book>
<book
name="data2">
<page
name="111.php">data2a</page>
<page
name="222.php">data2b</page>
</book>
<book
name="data3">
<page
name="111.php">data3a</page>
<page
name="222.php">data3b</page>
</book>
</category>

в select box -1- видно index при выборе раздела data1 в select2 появляется data1a и data1b.
при выборе раздела data2 в select2 появляется data2a и data2b. и.т.п
если можно то без jquery. т.к. хотел бы разобрать как это делается.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
drouZ  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 117
Пользователь №: 23509
На форуме: 6 лет, 3 месяца, 18 дней
Карма: 2




так ты сверху все разобрал. с jquery просто кода будет меньше.
я немного не понимаю суть всей затеи: получается, что при выборе позиции из выпадающего списка происходит какая-то движуха в элементах... в общем, в чем суть затеи?
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
leonw  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 108
Пользователь №: 40712
На форуме: 1 год, 11 месяцев, 1 день
Карма:




да, при выборе позиции в selectbox1 значение в selectbox2 меняется. выше на явасрипт. а на php такое же возможно? с чтением xml или все таки сделать через яву?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
drouZ  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 117
Пользователь №: 23509
На форуме: 6 лет, 3 месяца, 18 дней
Карма: 2




Пхп не отличается интерактивностью и работает только на стороне сервера, поэтому используют связки с js и не только, чтобы добиться интерактивности. Если ты не хочешь, чтобы у тебя после каждого выбора обновлялась страница, тогда нужно использовать js.

навскидку, 2 варианта:
1 - сразу в форму отдать все данные, чтобы адекватно собирать второй селект.
2 - использовать аякс для подгрузки нужных данных, а, возможно, целых элементов.

тут выбирать тебе.
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
leonw  
 ۩  [x]    Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 108
Пользователь №: 40712
На форуме: 1 год, 11 месяцев, 1 день
Карма:




может кто подсказать как прочитать такую структуру?
<?xml version="1.0" encoding="utf-8"?>
<category>
<marka
name="111">
<cat>
11111111</cat>
<model>
model1_1</model>
<model>
model1_2</model>
</marka>
<marka
name="22222222">
<cat>
222</cat>
<model>
model2_1</model>
<model>
model2_2</model>
<model>
model2_3</model>
</marka>
<marka
name="3333333">
<cat>
33333</cat>
<model>
model3_1</model>
<model>
model3_2</model>
<model>
model3_3</model>
</marka>
</category>


побывал так:
<?php
$xml = simplexml_load_file("xml.xml") or die("Error: Cannot create object");
$cat_a = $xml->marka->cat;
echo"
<ul class=tops>
<ol class=link1><font color=#ADADAB>
$cat_a</font></ol>";
if(!empty($xml->marka->model))
{
$agrs = $xml->marka->model;
foreach ($agrs as $vals)
{
echo "<li align=left><a href=$vals[link] class=link2>$vals</a></li>";
}
}

echo "</ul>";
?>
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
leonw  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 108
Пользователь №: 40712
На форуме: 1 год, 11 месяцев, 1 день
Карма:




он первый столбец читает а остальные нет user posted image
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
leonw  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 108
Пользователь №: 40712
На форуме: 1 год, 11 месяцев, 1 день
Карма:




вот кому может быть пригодиться

<?php
$sXml = '<?xml version="1.0" encoding="utf-8"?>
<category>
<cat category="Категория_turbo" link="11111.php">
<marka name="turbo">
<model>model1_1</model>
<model>model1_2</model>
</marka>
<marka name="turbo2">
<model>model2_1</model>
<model>model2_2</model>
<model>model2_3</model>
</marka>
</cat>
<cat category="Категория_sport" link="22222.php">
<marka name="sport">
<model>model3_1</model>
<model>model3_2</model>
<model>model3_3</model>
</marka>
<marka name="sport2">
<model>model4_1</model>
<model>model4_2</model>
<model>model4_3</model>
</marka>
<marka name="sport3">
<model>model5_1</model>
<model>model5_2</model>
<model>model5_3</model>
</marka>
</cat>
</category>'
;

$xml = new SimpleXMLElement( $sXml );

foreach($xml->cat as $cat)
{
echo " {$cat['category']}<br>";
foreach($cat->marka as $marka)
{
echo " {$marka['name']}<br>";
}
}

?>
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса