Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Совместная работа Java Script и PHP
 
 автор: Dmitriy76   (03.01.2008 в 22:19)   письмо автору
 
 

Подскажите, что необходимо для 100 % работы PHP и Java Script Проблема в следующем скрипт то работает то нет! Такое впечатление что проблема в окружении! Чем можно объяснить мерцающую работу скрипта ?! Ошибки не выводятся ! Как продиагностировать в чём проблема!

   
 
 автор: bronenos   (03.01.2008 в 22:49)   письмо автору
 
   для: Dmitriy76   (03.01.2008 в 22:19)
 

например вывалить исходник

   
 
 автор: Dmitriy76   (03.01.2008 в 22:54)   письмо автору
 
   для: bronenos   (03.01.2008 в 22:49)
 

<script language='JavaScript1.1' type='text/javascript'>
<!--
function dropFile(btn)
{
if(document.getElementById)
{
while (btn.tagName != 'TR') btn = btn.parentNode;
btn.parentNode.removeChild(btn);
}
}
function addFile(btn)
{
if(document.getElementById)
{
while (btn.tagName != 'TR') btn = btn.parentNode;
var newTr = btn.parentNode.insertBefore(btn.cloneNode(true),btn.nextSibling);
thisChilds = newTr.getElementsByTagName('td');
for (var i = 0; i < thisChilds.length; i++)
{
if (thisChilds[i].className == 'files') thisChilds[i].innerHTML = '<input size="32" name="att[]" class=input type="file">';
}
}
}
//-->
</script>

   
 
 автор: bronenos   (04.01.2008 в 00:11)   письмо автору
 
   для: Dmitriy76   (03.01.2008 в 22:54)
 

например привязка скрипту к версии языка 1.1

   
 
 автор: Dmitriy76   (04.01.2008 в 00:21)   письмо автору
 
   для: bronenos   (04.01.2008 в 00:11)
 

Убрал <script language='JavaScript' type='text/javascript'> эффект остался !?

   
 
 автор: bronenos   (04.01.2008 в 00:31)   письмо автору
 
   для: Dmitriy76   (04.01.2008 в 00:21)
 

cloneNode не везде работает хорошо, а innerHTML хорошо бы заменить document.createElement + element.appendChild

   
 
 автор: CNT   (04.01.2008 в 02:21)   письмо автору
 
   для: Dmitriy76   (03.01.2008 в 22:54)
 

PHP здесь, по-моему, не причём.

Когда работаете с "детьми" и "нодами", имейте в виду, что браузеры в HTML-коде всякий пробельный символ (в том числе перенос строк) воспринимают как "ребенка"/"ноду".
При этом разные браузеры считают количество пробельных символов по-разному.

Вот для примера элементарный код (имеем див с двумя спанами-"детьми"):
<html>
<body onload="alert (document.getElementById ('obj').childNodes.length)">

<div id="obj">
   <span>#1</span>
   <span>#2</span>
</div>

</body>
</html>
Запустите его в разных браузерах. И вы увидите разную цифру - алерт будет показывать в одних браузерах четверо "детей", а в других - целых пять.
Но нигде не будет показывать то, что фактически надо: всего два "ребенка" - два спана.

Чтобы достичь единообразия (и стабильности в работе), HTML-код надо писать не "красиво", а "рационально", вот так, например:
<html>
<body onload="alert (document.getElementById ('obj').childNodes.length)"
><div id="obj"
><span>#1</span
><span>#2</span
></div
></body>
</html>
Проверьте теперь и убедитесь, что цифра везде будет одна и та же - двойка, что и будет точно соответствовать задуманному.

Если уж очень надо "красиво", то - тоже можно. Например, так:
<html>
<body onload="alert (document.getElementById ('obj').childNodes.length)"

><div id="obj"
   ><span>#1</span
   ><span>#2</span
></div

></body>
</html>

   
 
 автор: Dmitriy76   (04.01.2008 в 13:19)   письмо автору
 
   для: CNT   (04.01.2008 в 02:21)
 

Спасибо есть над чем подумать !!! Но как бы сама Java отрабатывает , чисто визуально. А вот когда PHP подхватывет массив att[] вот здесь косяк. В 2 -х случаях из 10 просто ничего не происходит!

   
 
 автор: sim5   (04.01.2008 в 13:27)   письмо автору
 
   для: Dmitriy76   (04.01.2008 в 13:19)
 

Значит вы массив не верно на сервере обрабатываете, если в HTML части все ОК.

   
 
 автор: Dmitriy76   (04.01.2008 в 17:35)   письмо автору
 
   для: sim5   (04.01.2008 в 13:27)
 

На сервере я проверяю массив
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if (isset($_FILES['att'])){
И вот здесь я так понимаю и обламывается . Не проходя условие всё слетает. А почему не понятно?
Хотя в основном работает! Но в некоторые моменты нет!
В начеле у меня стоит
echo '<input type="file" size="32" name="att[]" class=input>
<input type="button" name="drop" value=" &minus; " onClick="dropFile(this);">
<input type="button" value=" + " onClick="addFile(this);">

   
 
 автор: sim5   (04.01.2008 в 18:05)   письмо автору
 
   для: Dmitriy76   (04.01.2008 в 17:35)
 

Вы просто не верно принимаете массив, зайдите в раздел РНР, сделайте поиск, там подобное уже разбиралось и не раз.

   
 
 автор: Dmitriy76   (04.01.2008 в 18:53)   письмо автору
 
   для: sim5   (04.01.2008 в 18:05)
 

Не сочтя за трут ткните носом. По поиску не удаётся найти!

   
 
 автор: sim5   (04.01.2008 в 19:02)   письмо автору
 
   для: Dmitriy76   (04.01.2008 в 18:53)
 

:) Прямо найти и ткунуть? Просто смотрите заголовки тем без поиска, не так давно было подобное о загрузке нескольких файлов на сервер, как точно называлась тема не помню, думаю ясно будет.

   
 
 автор: Dmitriy76   (04.01.2008 в 19:09)   письмо автору
 
   для: sim5   (04.01.2008 в 19:02)
 

Эту тему я читал . И скрипт взят от туда. Только он не очень рабочий . Хочется довести его до ума.

   
 
 автор: sim5   (04.01.2008 в 19:15)   письмо автору
 
   для: Dmitriy76   (04.01.2008 в 19:09)
 

Не знаю чего вы читали, но подобных тем было много. Вы можете вообще без динамического создания полей file, создать форму с тремя, например, такими полями, и разобраться в чем у вас проблемы. Мне просто кажется что они у вас на сервере.

   
 
 автор: Dmitriy76   (04.01.2008 в 19:34)   письмо автору
 
   для: sim5   (04.01.2008 в 19:15)
 

Читал вот эту статейку! http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=11131 А по поводу сервера были у меня подозрения!!!! Тестирую на домашнем apache надо хостеру залить!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования