Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   как передать значение из ссылки (https://javascript.ru/forum/misc/85975-kak-peredat-znachenie-iz-ssylki.html)

leon2009sp 08.07.2024 14:03

как передать значение из ссылки
 
Здравствуйте! можете помочь, как передать значение из ссылки :help:
<script>
var btn = document.querySelectorAll('a[href="#number"]');
for (let i = 0; i < btn.length; i++) {
  btn[i].onclick = function() {
    console.log('Кликнута кнопка номер ' + i);
  }
};
</script>
<div  id="1" value="1">111111</div>
<div  id="2" value="2">222222</div>
<div  id="3" value="3">333333</div>
<div  id="4" value="4">444444</div>
<div  id="5" value="5">555555</div>
<br>

<?php
echo #number;
?>

ksa 08.07.2024 17:20

Цитата:

Сообщение от leon2009sp
как передать значение из ссылки

А где у тебя ссылки?
Откуда и куда их нужно передавать?

leon2009sp 09.07.2024 07:02

пример:
window.addEventListener('DOMContentLoaded', function()
{
[].forEach.call(document.querySelectorAll('.old'), function(item)
{
 item.addEventListener('click', function()
 
{ if(document.querySelectorAll('.new').length  > 0 && !item.classList.contains('new')) {return} ;

 item.classList.toggle('new');
 var res = [].map.call(document.querySelectorAll('.new'),
 function(el) {
 return el.id
 })
 document.querySelector('.show').innerHTML = res.length ? '' + res : ''
 });
 });
});

<table width="200" summary="">
<tbody>
 <tr>
<td class="old" id="1" value="1">1</td>
<td class="old" id="2" value="2">2</td>
<td class="old" id="3" value="3">3</td>
</tr>
<tr>
<td class="old"  id="4" value="4">4</td>
 <td class="old" id="5" value="5">5</td>
 <td class="old" id="6" value="6">6</td>
</tr>
</tbody>
</table>
<div class="show">====</div>

только это сложный. (для меня) как из div передать значения?

leon2009sp 09.07.2024 07:42

готово сделано :thanks: вот что хотел:
<html>
    <head>
        <script type="text/javascript">
            function myFunc(id)
            {
               document.getElementById("content").innerHTML = id;			   
            }
        </script>
    </head>
    <body>
<div  id="1" value="1" onClick="myFunc(this.id);">111111</div>
<div  id="2" value="2" onClick="myFunc(this.id);">222222</div>
<div  id="3" value="3" onClick="myFunc(this.id);">333333</div>
<div  id="4" value="4" onClick="myFunc(this.id);">444444</div>
<div  id="5" value="5" onClick="myFunc(this.id);">555555</div>
<?php
$test = '<div id="content"></div>';
print_r ($test);
?>
</body>
</html>

leon2009sp 09.07.2024 09:11

почему я не могу установить значение в value ?
<script type="text/javascript">
            function myFunc(id)
            {
			let str = id;				
            document.getElementById("content").innerHTML = str;			   
            }
        </script>
    </head>
    <body>
<div  id="1" value="1" onClick="myFunc(this.id);">111111</div>
<div  id="2" value="2" onClick="myFunc(this.id);">222222</div>
<div  id="3" value="3" onClick="myFunc(this.id);">333333</div>
<div  id="4" value="4" onClick="myFunc(this.id);">444444</div>
<div  id="5" value="5" onClick="myFunc(this.id);">555555</div>
<?php 
$test = '<div id="content"></div>';
echo '<input type=text name=num1 value='.$test.'>';
?>

ksa 09.07.2024 09:22

Цитата:

Сообщение от leon2009sp
[].forEach.call(document.querySelectorAll('.old'), function(item) {})

У коллекции, что возвращает querySelectorAll(), есть собственный метод forEach(). ;)
Т.ч. не стоит городить такой огород. Будет работать и вот так

document.querySelectorAll('.old').forEach( function(item) {})

ksa 09.07.2024 09:24

Цитата:

Сообщение от leon2009sp
почему я не могу установить значение в value ?

Не у всех элементов ДОМ есть value... У DIVов - так точно его нет. :no:

Для такого рода данных используй дата-атрибуты

<div  data-value="1">111111</div>

ksa 09.07.2024 09:32

Цитата:

Сообщение от leon2009sp
только это сложный. (для меня) как из div передать значения?

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

<section>
	<div data-value="1">111111</div>
	<div data-value="2">222222</div>
	<div data-value="3">333333</div>
	<div data-value="4">444444</div>
	<div data-value="5">555555</div>
</section>

<script>
document.querySelector('section').addEventListener('click', e => {
	const o = e.target.closest('[data-value]')
	if (!o) return
	alert(o.dataset.value)
})
</script>

leon2009sp 09.07.2024 14:30

в input как число не заносит:
document.querySelector('section').addEventListener('click', e => {
	const o = e.target.closest('[data-value]')
	if (!o) return	
	document.getElementById("content").innerHTML = (o.dataset.value)
})
</script>
<div id="content"></div>
<?php
$test = '<div id="content"></div>';
echo '<input type="text" value="'.$test.'">';
?>

он его как текст видит
let str = id;
так тоже пробовал

ksa 10.07.2024 09:13

Цитата:

Сообщение от leon2009sp
он его как текст видит

Разумеется. В число придется преобразовывать...

leon2009sp 10.07.2024 14:10

ошибки переменных
 
не могу понять
когда есть переменная var то все отлично! :dance:
значение хорошо отображается. а через функцию в див ничего не происходит :help:
т.е. так работает:
<script>
var names='202407';
</script>
<?php
echo '<script type="text/javascript">';
echo "document.write('<input type=text value=\'' + names + '\' >')";
echo ' </script>';
?>

а так нет:
<script>
<section>
	<div data-value="1">111111</div>
	<div data-value="2">222222</div>
	<div data-value="3">333333</div>
	<div data-value="4">444444</div>
	<div data-value="5">555555</div>
</section>
<script>
document.querySelector('section').addEventListener('click', e => {
	const o = e.target.closest('[data-value]')
	if (!o) return	
	document.getElementById("content").innerHTML = (o.dataset.value)	 
})
</script>
<?php
$test = '<div id="content"></div>';
echo '<input type=text value='.$test.'>';
?>

leon2009sp 10.07.2024 14:13

числа еще раз числа
 
Вложений: 1
в число уже преобразовывал let
Вложение 4985
var res = parseInt(value)
            document.getElementById("content").innerHTML = res;

почему в DIV не появляется ничего ?

leon2009sp 10.07.2024 18:03

готово
<section>
	<div data-value="1">111111</div>
	<div data-value="2">222222</div>
	<div data-value="3">333333</div>
	<div data-value="4">444444</div>
	<div data-value="5">555555</div>
</section>
<script>
document.querySelector('section').addEventListener('click', e => {
	const o = e.target.closest('[data-value]')
	if (!o) return	
	document.getElementById("content").value = (o.dataset.value)	 
})
</script>
<?php
//$test = '<div id="content"></div>';
echo '<input type=text id="content" value="111">';
?>

leon2009sp 10.07.2024 18:27

а из за чего если меняешь местами скрипт с секцию = перестает все работать?
а,
если в функцию все это: то работает
<script>
function myFunc(id)
            {
document.querySelector('section').addEventListener('click', e => {
	const o = e.target.closest('[data-value]');
	if (!o) return;
	document.getElementById("captcha").innerHTML = (o.dataset.value);	 
})
			}
</script>
<?php
echo '<div id="captcha"></div>';
?>
<section>
	<div data-value="1" onClick="myFunc(this.id);">111111</div>
	<div data-value="2" onClick="myFunc(this.id);">222222</div>
	<div data-value="3" onClick="myFunc(this.id);">333333</div>
	<div data-value="4" onClick="myFunc(this.id);">444444</div>
	<div data-value="5" onClick="myFunc(this.id);">555555</div>
</section>

рони 10.07.2024 19:28

Цитата:

Сообщение от leon2009sp
04
document.querySelector('section')

этого ещё нет на странице, если скрипт выше блока с которым работает.
выход: обернуть скрипт в
document.addEventListener("DOMContentLoaded", () => {
    document.querySelector('section').addEventListener('click', e => {
	const o = e.target.closest('[data-value]')
	if (!o) return	
	document.getElementById("content").value = (o.dataset.value)	 
})
  });


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