Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как массив из Джавы переслать в php 
:(
    Опции темы
Sardar
Дата 23.7.2004, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Странно, не ожидал...
Цитата
не всетаки непонятно как реализуется забивка массива надо:

Это немного нагло с твоей стороны... просить полносьтю готовый код не дав при этом четкого ТЗ, дорабатывая его на ходу.... bored.gif
Я написал тебе выше, ты как раз и хотел "хотя бы наметки кода"...
Как собрать имена/значения с полей формы тоже показал, не понял - поищи по форуму... Доработай или выкладывай полное тех.задание, будет время и настроение - напишу.

Где ошибка, замени ret=[]; на ret=new Array(), хотя ранее с таким глюком не встречался...


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Mushu
Дата 23.7.2004, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 257
Регистрация: 20.7.2004

Репутация: нет
Всего: -5



можно поподробнее вот здесь что происходит
ret.push(form.elements[i].value);
Добавлено @ 14:10
все разобрался возвращает последний элемент, добавленный в массив.
клева
PM MAIL   Вверх
Mushu
Дата 23.7.2004, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 257
Регистрация: 20.7.2004

Репутация: нет
Всего: -5



насчет ошибки пробовал как ты советовал заменить на ret=new Array()
не помогло он орет именно на ret.push(form.elements[i].value);
что самое страное прогнал другие оболочки типа опера нетскейп и тд нормально работает а в ишаке 5 арет блогим матом


2. что хотелось бы узнать как обращаться к форме если она находится в ифрейме
PM MAIL   Вверх
Sardar
Дата 23.7.2004, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Как к любому другому обьекту, document.frames.iframe_name.document.forms.form_name.elements.element_name.value.

Цитата
он орет именно на ret.push(form.elements[i].value);

Убедись что form у тебя существует, похоже ты хотел взять его с другого фрейма обращаясь только по ИД, смотри пример выше.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Sardar
Дата 23.7.2004, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Вот вариант:
Код
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Untitled</title>
<script language="Javascript" type="text/javascript">
<!--
//отсылаем обьект {names: Array, values: Array}
function sendArray(cont) {
 f=document.createElement("FORM");
 document.body.appendChild(f);
 f.action="http://localhost/test.php"; //куда
 f.method="POST"; //как, лучше оставь POST
 //f.target=""; //в какое окно
 //f.enctype = "application/x-www-form-urlencoded";
 for(var i=0; i<cont.names.length; i++) {
   if(cont.values[i]==null||cont.values[i]=="") continue; //пропустим пустые, если нужны убери
   var o=document.createElement("INPUT");
o.setAttribute("name",cont.names[i]+"[]");
o.setAttribute("value",cont.values[i]);
o.setAttribute("type","hidden");
f.appendChild(o);
 }
 f.submit();
}
//соберем все элементы формы
function getFormElements(form, parnt) {
var names=[],values=[];
for(var i=0; i<form.elements.length; i++) {
 names.push(form.elements[i].name);
 values.push(form.elements[i].value);
}
if(parnt) {
 parnt.names=parnt.names.concat(names);
 parnt.values=parnt.values.concat(values);
 return parnt;
} else return {names: names, values: values};
}
//собственно остылаем
function sendForm() {
var obj1=getFormElements(document.forms.test);
var cont=getFormElements(window.frames.frm.document.forms.test,obj1);
sendArray(cont);
}
//-->
</script>
</head>

<body>
<form name="test">
<input type="hidden" name="hoi" value="bla1">
<input type="hidden" name="hoi" value="bla2">
<input type="hidden" name="hoi" value="bla3">
<input type="hidden" name="nou" value="bla">
<input type="hidden" name="nou" value="test">
<input type="hidden" name="nou" value="ura">
<input type="hidden" name="sdr" value="blerf">
<input type="hidden" name="sdr" value="ble">
<input type="hidden" name="sdr" value="bl">
</form>
<!-- скопируй форму выше в ифрейм -->
<iframe name="frm" src="iframe_form_src.htm"></iframe><br>
<button onClick="sendForm()">Test</button>
</body>
</html>


Одного не пойму, у тебя в разных(по твоим скудным обьяснениям) фреймах формы, ты хочешь их разом отослать? Зачем тогда извращатся? Для каждой формы вызови submit(), формы перезагрузятся в своих окнах... Или ты скрытно хочешь отсылать инфу, без перезагрузки?


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Mushu
Дата 26.7.2004, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 257
Регистрация: 20.7.2004

Репутация: нет
Всего: -5



не просто одна форма в ифрейме 2 форма тоже ифрейме 3 форма на главной страници данный беруться из этих форм для запроса к бд

разобрался вчем ошибка была насчет оператора push он в джаве 1.2не потдерживается


PM MAIL   Вверх
Mushu
Дата 26.7.2004, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 257
Регистрация: 20.7.2004

Репутация: нет
Всего: -5



СПАСИБО ТЕБЕ БОЛЬШЕЕ ЗА ТО ЧТО ВАЗИЛСЯ СОМНОЙ

но остался один единственный вопрос в который я ваше вошел в штопор или тупик
я взял скрипт твой 1 ошибка вот в чем он некоретно считавает данные когда чекеты в таблице

Код

<FORM name="test2" ><table width=100% border=1>
<TR>
   <TD><INPUT TYPE="CHECKBOX"  name="pok[]" value="10"></TD><TD>10</TD> <TD><INPUT TYPE="CHECKBOX"  name="pok[]" value="20"></TD><TD>20</TD>
</TR>
  <TR><TD><INPUT TYPE="CHECKBOX"  name="pok[]" value="30"></TD><TD>30</TD> <TD><INPUT TYPE="CHECKBOX"  name="pok[]" value="50"></TD><TD>50</TD>
  </TR>
  <TR><TD><INPUT TYPE="CHECKBOX"  name="pok[]" value="60"></TD><TD>60</TD> <TD><INPUT TYPE="CHECKBOX"  name="pok[]" value="70"></TD><TD>70</TD>
  </TR><TR><TD><INPUT TYPE="CHECKBOX"  name="pok[]" value="80"></TD><TD>80</TD> <TD><INPUT TYPE="CHECKBOX"  name="pok[]" value="100"></TD><TD>100</TD>
   </TR><TR><TD><INPUT TYPE="CHECKBOX"  name="pok[]" value="120"></TD><TD>120</TD> <TD><INPUT TYPE="CHECKBOX"  name="pok[]" value="130"></TD><TD>130</TD> </TR>
  </TR></TABLE>
</FORM>



непонятно как он его обрабатывает в таблице

Код

//функция собирающая значения элементов всех элементов формы
function form_elements(form) {
var ret=new Array();


for(var i=0; i<form.elements.length; i++) {
if(form.elements[i].checked){
ret[i]=form.elements[i].name;    //,беру имя
ret[i+1]=form.elements[i].value; // потом значение
}
}
return ret;
}

если обычный список чекетов
например
<INPUT TYPE="CHECKBOX" NAME="property[]" value="1">1<br />
<INPUT TYPE="CHECKBOX" NAME="property[]" value="2">2
<INPUT TYPE="CHECKBOX" NAME="property[]" value="3">3<br />
то работае (заносит сначала имя а потом значение )

а если чекеты в таблице или так
<INPUT TYPE="CHECKBOX" NAME="property[]" value="1">1 <INPUT TYPE="CHECKBOX" NAME="property[]" value="111">1<br />
<INPUT TYPE="CHECKBOX" NAME="property[]" value="2">2 <INPUT TYPE="CHECKBOX" NAME="property[]" value="112">1<br />
<INPUT TYPE="CHECKBOX" NAME="property[]" value="3">3 <INPUT TYPE="CHECKBOX" NAME="property[]" value="1">1<br />

то путиница идет какаята

HELP

Это сообщение отредактировал(а) Mushu - 26.7.2004, 12:00
PM MAIL   Вверх
Mushu
Дата 26.7.2004, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 257
Регистрация: 20.7.2004

Репутация: нет
Всего: -5



Sardar огромное спасибо все вавсем разобрался

PM MAIL   Вверх
Mushu
Дата 29.7.2004, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 257
Регистрация: 20.7.2004

Репутация: нет
Всего: -5



забыл спросить как выгледит в штмл сгенирированная форма


Код

//функция отправляющая массив POST'ом через форму
function sendArray(arr) {
f=document.createElement("FORM");
document.body.appendChild(f);
f.action="otchet.php"; //адрес куда отправляем форму
f.method="POST";
//f.enctype = "application/x-www-form-urlencoded";
for(var i=0; i<arr.length; i++) {
  if(arr[i]==null||arr[i]=="") continue;
  var o=document.createElement("INPUT");
o.setAttribute("name","js_array[]"); //имя переменной полученной в PHP: $_POST["js_array"][0...]
o.setAttribute("value",arr[i]);
o.setAttribute("type","hidden");
f.appendChild(o);
}
f.submit();

}



проблема возникает с f.action="otchet.php"; //адрес куда отправляем форму
или прописовать полный путь не работает
PM MAIL   Вверх
Sardar
Дата 29.7.2004, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Kакая ошибка выскакивает? Пропиши полный путь: _http://....


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0493 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.