|
Передача массива из PHP в JS.
Если передать переменную можно так
То как передать массив? Делаю так: $abcd = array('Массив 0', 1, 2); echo '<form action="' . $url . '" method="post" name="FormRegistration" onsubmit="return RegistrationValid(\'' . $abcd . '\');">'; alert выдает: array Помогите сделать это правильно. |
json_encode()
|
И вообще ты все неправильно делаешь. Валидация относится не к форме, а к полям формы. Чтобы написать более-менее абстрактный валидатор, тебе надо в поля записывать правила их проверки. Сейчас это можно сделать через атрибут поля pattern. Более того, есть встроенная в браузеры валидация, но там как-то туманно все.
Потому что формой регистрации твоя задумка не ограничится. Где регистрация, там и смена пароля, редактирование профиля и все такое и повсюду нужна валидация. Ты на каждую форму будешь писать ее личный валидатор? |
Можно так:
$abcd = json_encode(array('Массив 0', 1, 2)); echo "<form action=\"$url\" method=\"post\" name=\"FormRegistration\" onsubmit='return RegistrationValid($abcd )'>"; onsubmit="function_name();" - одно выражение, значит и точка с запятой в общем то не нужна. Но если судить по передать переменную можно так, а теперь как впихнуть массив, то это наводит на мысль, что вы что-то не так делаете. |
Спасибо warren buffet.
Делаю так: $abcd = array(1,2,3); $abcd = json_encode($abcd); echo '<form action="' . $url . '" method="post" name="FormRegistration" onsubmit="return RegistrationValid(\'' . $abcd . '\');">'; В js делаю так: massiv = JSON.parse(abcd); alert(massiv[0]); Работает. А как передать такой массив? $abcd = array('1','2','3'); addslashes - не помогает... |
Например на сайте может быть открыто одновременно считай сколько форм:
Профиль Перезвонить Фидбэк Быстрая покупка Оформление корзины И на все эти формы придется писать свою тряхомудию, и когда ты напишешь на две, уже увидишь, что коды одинаковые. Выдавишь их в функции для реюза и увидишь, что их надо собирать в объект. Короче жизнь все равно заставит. Так что лучше не жди ее пинков. ))) |
Цитата:
|
Просто у функции RegistrationValid должен быть параметр
function RegistrationValid(params){ /* Все что json_encode() отпостил, и будет в params*/ } PS Может быть будет не объект, а массив. Если ключей нет, то есть когда они континуально индексные, json_encode() кажется делает массив, почитай документацию. |
Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 16:45. |
|