[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Цикл for
Гость_Дмитрий
с каждим новым кругом цыкла мне надо что бы "name" минялось на name1,name2...nameN . смотрел по примеру, что то не получается .
for ($i = 1; $i < 6; $i++) :
$txt = $dom->createTextNode($name[$i]); // вот тут надо name1,name2...

endfor;




Спустя 1 час, 51 минута, 27 секунд (20.02.2010 - 13:38) Гость_Дмитрий написал(а):
Не, вы не поняли, мне не надо прибавить к тексту что находится в nam1.name2.name3 число +1 +2 и +3 . В мой ПХП файл c другой программы приходит текст, который потом позначается как name1,name2,name3 тоесть вот вид такой :
$name1 = $_GET['name1']; // пийом текста, в name1
$name2 = $_GET['name2'];
$name3 = $_GET['name3'];

тиаких name у меня много, дальше, у меня идет цикл for
for ($i = 1; $i < 6; $i++) :
$txt = $dom->createTextNode($name[$i]); //неправельный

endfor;

это всеровно что я напишу вместо цикла
$txt = $dom->createTextNode($name1);
$txt = $dom->createTextNode($name2);
$txt = $dom->createTextNode($name3);
...

$txt = $dom->createTextNode($nameN);


Вот и есть моя проблема !

Спустя 51 минута, 51 секунда (20.02.2010 - 14:30) sergeiss написал(а):
Цитата (Гость_Дмитрий @ 20.02.2010 - 14:38)
$name1 = $_GET['name1']; // пийом текста, в name1
$name2 = $_GET['name2'];
$name3 = $_GET['name3'];

Тогда вообще всё просто smile.gif
$name=array();
foreach( $_GET as $k => $v )
{
if( substr( $k, 0, 4) == 'name' )
$name[$k]=$v;
}

И тут даже могуть "пропуски" в нумерации. Главное, что через GET передаются какие-то параметры, имена которых начинаются на 'name'.

Только потом, лучше, используй цикл не for, а foreach.

Спустя 42 минуты, 47 секунд (20.02.2010 - 15:13) John_761 написал(а):
<html>
<head>
</head>

<body>
<form
id="nameArea" method="post" action="">
<input
type="text" name="name1"/>
<input
type="button" name="addField" value="addField" onclick="addFieldName()"/>
<input
type="submit" name="go" value="Go"/>
</form>
</body>
</html>

<script language="javascript">
//глобальная переменная-счетчик
i = 1;

function addFieldName()
{
i++;
var name = document.createElement('input');
var br = document.createElement('br');

name.type = 'text';
name.name = 'name' + i;

var form = document.getElementById('nameArea');
if (form)
{
form.appendChild(br);
form.appendChild(name);
}
}

</script>

 $go = isset($_POST['go']) ? TRUE : FALSE;

if ($go) :

$array = array();

foreach ($_POST as $key => $p) :

if (stristr($key, 'name') !== FALSE)
$array[] = $p;
endforeach;


$dom = new DOMDocument('1.0','utf-8');
$all = $dom->createElement('all');
$name = $dom->createElement('name');
$predmet = $dom->createElement('predmet');

$dom->appendChild($all);

$root = $dom->getElementsByTagName('all')->item(0);
$root->appendChild($name);
$nameElement = $root->getElementsByTagName('name')->item(0);

for ($i = 0; $i < count($array); $i++) :

$txt = $dom->createTextNode($array[$i]);
$predmet = $dom->createElement('predmet');
$nameElement->appendChild($predmet)->appendChild($txt);

endfor;

$dom->save('testing.xml');
$str = $dom->saveXML();

endif;

Спустя 6 часов, 35 минут, 11 секунд (20.02.2010 - 21:48) Гость_Дмитрий написал(а):
Не кто так правильно и не сказал )
Даже в php.ru не нашел вот к примеру надо что бы $p с циклом менялось на $p1,$p2,$p3 но так, не получается, сколько бы я не эксперементировал :
for ($i = 1; $i <= 10; $i++) {
$p = $_GET['p'.$i]; //даже были такие варианты $p[$i]

Словом, вместо того что бы писать так :
$p1 = $_GET['p1'];
$p2 = $_GET['p2'];
$p3 = $_GET['p3'];
...

$p4 = $_GET['p4'];
//хоть до $p1000
можно просто, сделать цикл, но как ? помогите ктото ! unsure.gif

Спустя 32 минуты, 2 секунды (20.02.2010 - 22:20) John_761 написал(а):
Зачем создавать миллион переменных если все можно просто занести в массив ??

Спустя 31 минута, 7 секунд (20.02.2010 - 22:51) sergeiss написал(а):
А мой пример ты видел, пробовал, думал над ним? Рабочий, кстати, на все 100%... Тут в теме, чуть выше.

Спустя 22 минуты, 30 секунд (20.02.2010 - 23:13) sergeiss написал(а):
Цитата (PHPprogramer @ 21.02.2010 - 00:09)
Для этого в for'е пишем $p.$i, а здесь $_GET['p'].$i будет к полученным данным присоединятся 1 - 5, в итоге мы получи:

ЁПРСТ!!!!!!!!!!!!!!!!!!!!

Ну ты хотя бы попробуй ввести этот код, а потом советуй его. Второй Попов нашелся, понимаешь ли... mad.gif

И не забудь потом написать на форуме, куда тебя пошлёт ПХП!

Спустя 10 минут, 48 секунд (20.02.2010 - 23:24) sergeiss написал(а):
Цитата (PHPprogramer @ 21.02.2010 - 00:15)
Так я сначала его ввел, проверил, написал.

То есть, ты хочешь сказать, что $_GET['p'].$i (при $i равном 1) эквивалентно $_GET['p1']????

И что ПХП "типа понял, что ты имел ввиду"??? biggrin.gif

PS. И ты также "свято уверен", что $p.$i равноценно $p1 (при $i==1)??? blink.gif

"Афигеть, дайте два!" (с)

Спустя 9 минут, 7 секунд (20.02.2010 - 23:33) Гость_Дмитрий написал(а):
sergeiss, smile.gif у каждого свои методы biggrin.gif . А твой точно работает ? просто еще не разбирал, ищу легче методы )

Спустя 6 минут, 29 секунд (20.02.2010 - 23:40) Гость_Дмитрий написал(а):
Кстате, на счет array . Можете навести пример, к примеру вот пришел текст в 'name' . Слова, разделены через кому, я так понял тут split есть в php ? ) Так вот , Этот текст в котором к примеру 100 слов разделенных через кому и, 30 слов поместить в name1, 30 в name2 и тд.

Спустя 50 секунд (20.02.2010 - 23:41) sergeiss написал(а):
Цитата (Гость_Дмитрий @ 21.02.2010 - 00:33)
sergeiss,у каждого свои методы. А твой точно работает ?

Это не мой метод, а просто здравый метод smile.gif

Но ты не читай, что пишет PHPprogramer в этой теме. Он то ли травы обкурился какой-то (очень "забористой"), то ли пЫва много выпил...

Спустя 1 минута, 43 секунды (20.02.2010 - 23:42) sergeiss написал(а):
Цитата (Гость_Дмитрий @ 21.02.2010 - 00:40)
Кстате, на счет array . Можете навести пример, к примеру вот пришел текст в 'name' . Слова, разделены через кому, я так понял тут split есть в php ? ) Так вот , Этот текст в котором к примеру 100 слов разделенных через кому и, 30 слов поместить в name1, 30 в name2 и тд.

Не split, а explode. И лучше не в name1, name2 и т.д. помещать, а в элементы массива smile.gif Тем более, что в ПХП с массивами работать ну очень удобно. Несравнимо удобнее, чем в Си, например. Хотя и медленнее, чем в Си smile.gif

Спустя 7 минут, 18 секунд (20.02.2010 - 23:50) Winston написал(а):
Цитата (sergeiss @ 20.02.2010 - 22:41)
Он то ли травы обкурился какой-то (очень "забористой"), то ли пЫва много выпил...

Ненадо ненадо, я никогда не курил и не курю. А насчет пива, так я даже шампанское не пью. Так что я некурящий - трезвенник. А тот маразм, что я написал я удалю.

Спустя 13 часов, 11 минут, 29 секунд (21.02.2010 - 13:01) Гость_Дмитрий написал(а):
Цитата (sergeiss @ 20.02.2010 - 20:42)
Не split, а explode. И лучше не в name1, name2 и т.д. помещать, а в элементы массива smile.gif Тем более, что в ПХП с массивами работать ну очень удобно. Несравнимо удобнее, чем в Си, например. Хотя и медленнее, чем в Си smile.gif

Наведите пример пожалуйста ! Да, и что бы не в name1,name2... а в массив.

Спустя 2 часа, 39 минут, 59 секунд (21.02.2010 - 15:41) sergeiss написал(а):
Цитата (Гость_Дмитрий @ 21.02.2010 - 14:01)
Наведите пример пожалуйста ! Да, и что бы не в name1,name2... а в массив.

Я уже приводил пример в этой теме. См. выше.
Быстрый ответ:

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