Проблема с заполнением таблицы без перезагрузки страницы

jonjonson

Guest
PHP:
$my_array = array('Alice', 'Fred');
echo '<script type="text/javascript">';
echo 'function Kindergarten() {';
echo 'var myArray = new Array( );';
echo 'myArray[0] = "' . $my_array[0] . '";';
echo 'myArray[1] = "' . $my_array[1] . '";';
echo '}';
echo '</script>';
 

JohnDan

Guest
Спасибо, вот это мне и надо было!!! вопросов больше не имею
 

Фанат

oncle terrible
Команда форума
то есть, ты хочешь сказать, что вывести, к примеру
echo '<td>' . $my_array[0] . '</td>';
ты можешь, а
echo 'myArray[0] = "' . $my_array[0] . '";';
уже не догадался?
Или ты даже первого не умел?
 

JohnDan

Guest
догадался, первое умел, теперь ситуация такова: вот код:

<?
$query = "SELECT * FROM 111";
$result = mysql_query($query);
$number = mysql_num_rows($result);
$mas = array();
for($i = 0; $i < $number; $i++)
{
$myrow = mysql_fetch_array($result);
$mas[$i]['id'] = $myrow['id'];
$mas[$i]['tip'] = $myrow['tip'];
}
?>
<SCRIPT LANGUAGE="JavaScript">
var myArray = new Array(new Array())
myArray[0]['id'] = "<?echo $mas[0]['id']?>"
myArray[1]['tip'] = "<?echo $mas[1]['tip']?>"
window.alert(myArray[0]['id'])
</SCRIPT>

не выскакивает alert, если делаю одномерный массив, т.е.

var myArray = new Array()
myArray['id'] = "<?echo $mas[0]['id']?>"
myArray['tip'] = "<?echo $mas[1]['tip']?>"
window.alert(myArray['id'])

всё нормально, в чём проблема??? не правильно многомерный массив объявил???
 

Фанат

oncle terrible
Команда форума
а зачем ты здесь показываешь пхп код?
у тебя проблема с яваскриптом?
Ну так почему ты не показываешь яваскрипт?!
 

JohnDan

Guest
<SCRIPT LANGUAGE="JavaScript">
var myArray = new Array(new Array())
myArray[0]['id'] = "<?echo $mas[0]['id']?>"
myArray[1]['tip'] = "<?echo $mas[1]['tip']?>"
window.alert(myArray[0]['id'])
</SCRIPT>
 

Фанат

oncle terrible
Команда форума
Вот только дома ему и не хватало, да.
Гениальное предложение.

JohnDan
Интересно, до тебя с какого раза доходит?
по-моему - вообще ни с какого.
Ты в состоянии понять, что вот это
myArray[1]['tip'] = "<?echo $mas[1]['tip']?>"
НИКАКОЙ НЕ ЯВАСКРИПТ?
Это часть кода на ПХП!
А если у тебя не работает яваскрипт, то приводить надо код на яваскрипт! А не на пхп?
Неужели даже такую простую вещь ты понять не в состоянии?
PHP FAQ: Самые основы. ОЧЕНЬ ВАЖНОЕ ЗАМЕЧАНИЕ
 

crocodile2u

http://vbolshov.org.ru
В JS нельзя назначать массиву строковые индексы.

Используй что-то вроде:

PHP:
my_struct = {
    0:{
        'id':"",
        'foo':"bar"
    }
}
 

CMHungry

Guest
Если браузер IE, то можно через data binding. Обращение к серверу по любому будет, но без перезагрузки все страницы.
Можно еще с XML-контролами играться, но это поле плохо паханое.
 

Cid

...двинутый новичок
Alexandre

Cid юзай DOMDocument - все можно при достаточном желании и опыте
Поскольку речь идет о выгрузке информации из базы при смене изображения, то я, честно, не вижу способа обойтись без перезагрузки. Поясни, пожалуйста, может быть, ты что-то другое имел ввиду?

Да, конечно, можно использовать прелоад всех данных в массив и подставлять их, но в коня ли корм ?
 

JohnDan

Guest
я сразу всё из базы заношу в массив, т.е. имею уже всё готовое.

-~{}~ 08.10.04 11:10:

crocodile2u В JS можно назначить строковые индексы, если я создаю одномерный массив:::
<SCRIPT LANGUAGE="JavaScript">
var myArray = new Array()
myArray['id'] = "<?echo $mas[0]['id']?>"
myArray['tip'] = "<?echo $mas[1]['tip']?>"
window.alert(myArray['id'])
</SCRIPT>
Всё работает, т.е. проблема именно в инициализации многомерного массива! Думаю так
 

Фанат

oncle terrible
Команда форума
Кто-нибудь - ну объясните ему, чтобы он яваскрипт свой писал и отлаживал безо всякого пхп.
 

JohnDan

Guest
ладно, уберу пхп, уть то не измениться

-~{}~ 13.10.04 07:05:

почему:::
<html>
<head>
<SCRIPT LANGUAGE="JavaScript">
var myArray = new Array(new Array())
myArray['0']['id'] = "значение1"
myArray['1']['name'] = "значение2"
function al(){
window.alert(myArray['0']['id'])
}
</SCRIPT>
</head>
<body>
<input type=button value='Alert!!' onClick='al()'>
</body>
</html>

работает, а:::

<html>
<head>
<SCRIPT LANGUAGE="JavaScript">
var myArray = new Array(new Array())
myArray['0']['id'] = "значение1"
myArray['1']['name'] = "значение2"
window.alert(myArray['0']['id'])
</SCRIPT>
</head>
</html>

нехочет??? Только прошу по существу.

-~{}~ 13.10.04 11:02:

с предидущим уже всё ясно, новая проблема:::

for(i = 0; i < <?echo $number?>; i++)
{
myArray = new Array();
<?$myrow = mysql_fetch_array($result);?>;
myArray['name'] = '<?echo $myrow['name']?>';
myArray['id'] = '<?echo $myrow['id']?>';
}
document.writeln(myArray[1]['name']);

почему то не товыдаёт, как будто mysql_fetch_array выполнилось всего 1 раз, цикл крутиться необходимое кол-во раз, проверял, в чём проблема?
 

MD

Guest
ну в приведенном тобой коде оно и выполниться всего один раз.
пхп обрабатываеться до JS. прими это как факт. ни вместе, ни по очереди, сначала пхп на СЕРВЕРЕ, потом яваскрипт на КЛИЕНТЕ.
вопросы еще остались?
 

JohnDan

Guest
да, тогда каким образом мне это осуществить
 

MD

Guest
если бы ты немного напрягся и подольше подумал, то уже давно бы все осуществил. Забудь про циклы в JS. вывод своих полей делай из пхп.
 

Фанат

oncle terrible
Команда форума
Может, дать ему в последний раз ссылку на фак,
PHP FAQ: Самые основы. Как работает PHP.
и закрыть уже тему, чтобы не мучался?
Ну сколько раз можно повторять одно и то же?
Читать он не хочет, понимать - тоже, а проблемы у него одни и те же.
 

JohnDan

Guest
Чё за отношение, не пойму, прошу помощи, а не денег, объясните по существу раз и всё. И если я прошу именно это, значит именно это и нужно!
 
Сверху