Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как передать данные из php и выполнить задачу (https://javascript.ru/forum/dom-window/47160-kak-peredat-dannye-iz-php-i-vypolnit-zadachu.html)

imediasun1 11.05.2014 16:32

Как передать данные из php и выполнить задачу
 
здравствуйте в php есть переменная $rema=5;
Есть так же html код такого содержания
<ul>
<li>
<input type="text" value="4">
</li>
<li>
<input type="text" value="5">
</li>
</ul>

Как передать переменную rema в Jquery и выполнить следующее действие:
Вставить блок <div class="arrow"></div>
в элемент <li> у которого значение поля инпут равно переменной $rema, если там еще нет этого блока ? помогите пожалуйста

danik.js 11.05.2014 17:20

$.get()

imediasun1 11.05.2014 17:27

а подробнее можно, с примерчиком, плз не пойму как передавать эту переменную из пхп, и если можно нужна помощь в самом решении

ruslan_mart 11.05.2014 19:14

var rema = '<?=$rema?>';
alert(rema);

danik.js 11.05.2014 19:26

Если переменная дана на этапе генерации страницы, то и логика должна быть там же. То есть нафига она тебе в js?

imediasun1 12.05.2014 01:33

А как определить элемент li у которого input равен переменной rema

danik.js 12.05.2014 04:53

Код шаблона покажи.

imediasun1 12.05.2014 12:44

<nav >
<?function get_cat($menu) {
	if(!$menu) {
	return NULL;
	}
	$arr_cat = array();
	if(count($menu) != 0) {
	//В цикле формируем массив
	foreach ($menu as $key=>$row){
//Формируем массив где ключами являются адишники на родительские категории
	if(empty($arr_cat[$row['parent_id']])) {
	$arr_cat[$row['parent_id']] = array();
	}	
	$arr_cat[$row['parent_id']][] = $row;
	}		
	//возвращаем массив
	return $arr_cat;
	}
}
//вывод каталогa с помощью рекурсии		
function view_cat($arr,$lang,$parent_id = 0) {
//Условия выхода из рекурсии
	if(empty($arr[$parent_id])) {
	return;
	}
	echo '<ul class="parent'.$parent_id.'">';
//перебираем в цикле массив и выводим на экран
	for($i = 0; $i < count($arr[$parent_id]);$i++) {
	if($arr[$parent_id][$i]['parent_id']>0){
	$rema=$arr[$parent_id][$i]['parent_id'];
	?>
	<script>
	var rema = '<?=$rema?>';
$("input[value='"+rema+"']").parent('li').append('<div class="ar down_arrow">123</div>') ;
	</script>
	<?
	}
	print_r($arr[$parent_id][$i]['id']);
	echo '<li><a href="/'.$lang.'/pages/page/'.$arr[$parent_id][$i]['id'].'">'.$arr[$parent_id][$i]['title'].'</a>';
	echo "<input type='text' value=".$arr[$parent_id][$i]['id'].">";
//рекурсия - проверяем нет ли дочерних категорий
	view_cat($arr,$lang,$arr[$parent_id][$i]['id']);
	echo '</li>';
	}
	echo '</ul>';
	}
	$result = get_cat($menu);
//Выводи каталог на экран с помощью рекурсивной функции
view_cat($result,$lang);
	?>
</nav>

danik.js 12.05.2014 18:26

Перед сороковой строчкой добавь такой код:
if ($rema == $arr[$parent_id][$i]['id']) { ?>
     <div class="ar down_arrow">123</div>
<? }

А тег <script> убери, он не нужен.

danik.js 12.05.2014 18:29

Стопэ. А че ты мутишь? Твоя $rema создается только при выполнении условия на 30-й строчке, и равна $arr[$parent_id][$i]['id']

Соответственно к чему все эти лишнии манипуляции? Используй сразу в нужном месте свое условие $arr[$parent_id][$i]['parent_id']>0

webmasterFast 15.05.2014 17:23

Все делается гораздо проще


Часовой пояс GMT +3, время: 13:35.