Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.10.2015, 13:36
Новичок на форуме
Отправить личное сообщение для ugg555 Посмотреть профиль Найти все сообщения от ugg555
 
Регистрация: 14.10.2015
Сообщений: 4

Передача переменной из массива PHP в функцию JS
Здравствуйте!

У меня такая простая функция для события onclick="testFun();" кнопки УДАЛИТЬ.
function qDelete() {

document.location.href = "delete.php?id=<?php echo $row['id']?>";
		                                        }

Переменная $row это массив полученный в PHP командой mysql_fetch_array из базы mySQL.

Не могу понять почему JS его не видит.
Допустим эту сроку JS видит(просто переменная $new):
document.location.href = "delete.php?id=<?php echo $new?>";


Как быть ?

Последний раз редактировалось ugg555, 14.10.2015 в 13:41. Причина: Поправка
Ответить с цитированием
  #2 (permalink)  
Старый 14.10.2015, 14:02
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Если этот код обрабатывается как подключаемый к исполняемому файлу, то все будут Ок, но при условии, что переменные определены до подключения. Если этот код в не исполняемом файле, то будет как строка.
Ответить с цитированием
  #3 (permalink)  
Старый 14.10.2015, 14:25
Новичок на форуме
Отправить личное сообщение для ugg555 Посмотреть профиль Найти все сообщения от ugg555
 
Регистрация: 14.10.2015
Сообщений: 4

На этом примере id=16, проходя далее оно уже 29 а в функции принимает значение 8

Ответить с цитированием
  #4 (permalink)  
Старый 14.10.2015, 14:40
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

И что? Ваш вопрос звучит так - Не могу понять почему JS его не видит, а это значит нет. Но если есть значение, но не то, то чего вы ожидаете? Вы думаете из куска кода вырванного из контекста, в котором трудно понять чего вы делаете, и На этом примере id=16, проходя далее оно уже 29 а в функции принимает значение 8 тоже все объясняет?

Если ресурс sql вернул несколько строк и <?php echo $row['id']?> (можно короче - <?=$row['id']?>) это проходом в цикле, то не та цифра это и есть результат цикла. А если .... что там у вас "если", только вам да богу известно. Пояснять надо.
Ответить с цитированием
  #5 (permalink)  
Старый 14.10.2015, 16:05
Новичок на форуме
Отправить личное сообщение для ugg555 Посмотреть профиль Найти все сообщения от ugg555
 
Регистрация: 14.10.2015
Сообщений: 4

Сообщение от laimas Посмотреть сообщение
Пояснять надо.

Подключаюсь в базе, делаю запрос данных
Из запроса создаю Массив.
Затем while выбираю все записи
Наименование организации
ИНН
Кнопка Изменить и Удалить(кнопки bootstrap 3)
И так 10 раз
<?php

	include_once("db.php");

	$limit = 10;

	$result = mysql_query(" SELECT * FROM reestr
	                    ORDER BY id DESC
	                    LIMIT $limit
	");

	mysql_close();

	while($row = mysql_fetch_array($result))
	{?>
<!-- Здесь форматируется запись типа
Наименование организации
ИНН
Кнопка Изменить и Удалить
И так 10 раз -->
<p>Наименование организации: <strong><?php echo $row['orgname']?></strong></p>
<p>ИНН организации: <strong><?php echo $row['inn']?></strong></p>
<?php echo $row['id']?>
<!-- Модаль КНОПКА -->
<button class="btn btn-info " data-toggle="modal" data-target="#myModalEdit" >Изменить</button>

<!-- Модаль для кнопки РЕДАКТИРОВАТЬ ЗАПИСЬ -->
<div class="modal fade" id="myModalEdit" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                <h4 class="modal-title" id="myModalLabel">Редактирование записи !</h4>
            </div>
            <div class="modal-body">Внести изменения ?
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">Отмена</button>
                <button type="button" class="btn btn-primary" onclick="return qEdit();">Редактировать <?php echo $row['id']?></button>
            </div>
        </div>
    </div>
</div>
<!-- Модаль для кнопки РЕДАКТИРОВАТЬ ЗАПИСЬ -->

<!--По клику кнопки (строка 39 данного кода) Изменить появляется модальное окно в котором кнопка Pедактировать выполняет скрипт onclick="return qEdit();" -->
<script>
function qEdit() 
{
//var xxx = "<?php echo $row['id']?>";
//alert(xxx);
document.location.href = "edit.php?id=<?php echo $row['id']?>";
}
</script>

<!--В конце закрываю while -->

<?php } ?>


Прослеживаю переменную см. строки кода выше:
23 строка - результат который нужен мне допустим 16 (у каждой кнопки разный)
39 строка - равен 29 (как выяснил это id последняя запись, так как запрос в запросе к базе есть сортировка от большего к меньшему). Данный результат у всех 10 кнопка
Ну и строки 50,51 если раскоментовать, то рез будет 8

Если строку <?php } ?>
поставить перед тегами скрипта то id будет пуст

Последний раз редактировалось ugg555, 14.10.2015 в 16:09. Причина: Дополнение
Ответить с цитированием
  #6 (permalink)  
Старый 14.10.2015, 16:36
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Во-первых так делать нельзя, в вы в цикле порождаете 10 функций qEdit(). Во-вторых какого возврата вы ожидаете здесь onclick="return qEdit();", если результат функции переход на новую страницу? Да и кнопке этот возврат пустой звук.

Функцию qEdit() вообще нужно удалить из этого кода, поместив в подключаемый или прописанный вне цикла скрипт. Функция должна принимать аргументом значение $row['id'], которое можно присвоить источникам вызова функции, например, <button id=<?=$row['id']?> type="button" class="btn btn-primary" onclick="qEdit(this.id)">
Ответить с цитированием
  #7 (permalink)  
Старый 14.10.2015, 17:25
Новичок на форуме
Отправить личное сообщение для ugg555 Посмотреть профиль Найти все сообщения от ugg555
 
Регистрация: 14.10.2015
Сообщений: 4

Спасибо понял!
Сделал так.
Убрал функцию с цикла
Прописал ваши значения для кнопки
Сама функция такая
<script >
function qEdit(id) 
{
var text1 = id;
var text2 = 'edit.php?id=';
var text0 = text2 + text1; 
//alert(text2 + text1);
document.location.href = text0;
}
</script>


Смешная может быть но JS знаю только неделю)))

Про php сокращение знаю. Пишу пока полное, опыт еще не пришел...

Если есть желание поясните по функции... может короче можно.

И вообще если допустим в теге я напишу onclick="qEdit(this.class)" то она передаст название класса?
А внутри функции его нужно присваивать переменной ?
Ответить с цитированием
  #8 (permalink)  
Старый 14.10.2015, 17:41
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

function qEdit(id) {
    window.location.href = 'edit.php?id='+id;
}


Сообщение от ugg555
И вообще если допустим в теге я напишу onclick="qEdit(this.class)" то она передаст название класса?
Естественно, все что будет передано в функцию будет в ней получено. Зачем только передавать на сервер имя класса. Но если речь о некой другой функции, то "А внутри функции его нужно присваивать переменной ?" - да. И учтите, id=123, это неверно, должно начинаться с буквы. Для валидности можно хранить в data-id="123", а можно и id валидно задать:

<button id="id-<?=$row['id']?>" type="button" class="btn btn-primary" onclick="qEdit(this.id)">


а в функции qEdit(id):

window.location.href = "edit.php?"+id.replace("-","=");


<?=$var?> - это тоже самое, что и <?php echo $var?>, и в старых версиях работает только если разрешен короткий php_тег (<? без php), в новых версиях это работает не зависимо от такого разрешения.

Последний раз редактировалось laimas, 15.10.2015 в 05:25.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите к js коду, написать html код Modrih Элементы интерфейса 8 16.06.2015 18:08
Очень нужна помощь! Передача кириллицы в функцию JS VADIK_Minvody AJAX и COMET 9 03.06.2015 12:13
Передача значений нескольких параметров из js в php TomTykver AJAX и COMET 2 13.05.2015 22:19
Передать значение переменной из php в js wayzer Элементы интерфейса 8 22.02.2015 21:20
Передать значение переменной из php в js wayzer jQuery 6 09.09.2012 23:26