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

HTML+CSS+JavaScript

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

 

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

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

тема: array в javascript и php
 
 автор: gotbar   (20.02.2005 в 06:14)   письмо автору
 
 

доброе всем время суток

вот по поиску прошерстила весь форум, но ответа на свои 2 проблемы так и не нашла, но очень надеюсь на помощь спецов.
проблема 1. Как можно упаковать массив из php в переменную new Array()javascript? через hidden я получаю массив, но не могу в его обработке вывести все его значения.
проблема 2. Эти значения должны сравниваться с значениями value в select -->option, если значения совпадают строчка в селекте должна принять selected.


$_POST['stichwort'] = $db_stwort;        // передача данных из баз данных в форму
$_POST['textarea'] = $db_text;            // передача данных из баз данных в форму
$_POST['message'] = $message;
$_POST['klassen_auswahl'] = $db_klasse;     //передача данных из баз данных в форму в виде массива
include('home.php');



--html--
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>tool</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <script language="javascript" src="temp.js">
    <!--
    function klassenGo()
    {
    var ar = new Array;
    ar = document.forms[0].elements[3];
    for (var i=0; i < document.forms[0].elements[2].length; i++)
    {
        ar[i] = document.forms[0].elements[3].value;
        for (var n=0; n < document.forms[0].elements[2].length; n++)
        {
            if(ar[i] == document.forms[0].elements[2].options[n].value)
            document.forms[0].elements[2].options[n].selected = true;
        }//for
    }//for
    alert(ar);
    
    }
    -->
    </script>

</head>
<body>
<form action="index.php" method="POST">  
<table width="108%" border="0">
  <tr>
    <td width="13%">&nbsp;</td>
    <td width="87%">site</td>
  </tr>
</table>

  <table width="98%" height="30%" border="0">
    <tr> 
       <td height="135" colspan="2" valign="middle"> <p> <?php echo $_POST['message'?>  </p>
        <input name="stichwort" type="text" id="stichwort4" value="<?php  echo $_POST['stichwort'?>" size="70"> 
      </td>
      <td width="15%" valign="middle">&nbsp; 
      </td>
      <td width="24%" rowspan="2" valign="top"> <select name="klassen[]" size="10" multiple>
        <option value=" ">все</option>
        <option value="first">один</option>
        <option value="second">два</option>
        <option value="third">три</option>
        <option value="fourth">четыре</option>
      </select> </td>
    </tr>
    <tr> 
      <td width="24%"  valign="bottom"> &nbsp; 
      <input type="submit" name="query" value="select" size="40" onClick="klassenGo()"><!-- -->  
        <div align="left"></div>
        <div align="center"></div></td>
      <td width="19%"  valign="bottom"><div align="left">
     <td width="15%" height="202" valign="top"><input type="hidden" name="db_klassen[]" value="<?php  echo $_POST['klassen_out'?>"></td> 
    <td width="85%" valign="top">
    <p>&nbsp;</p>
    <textarea name="textarea" cols="95" rows="20"><?php echo $_POST['textarea'?></textarea>
    </td>
  </tr>
</table>
</form>
</body>
</html>

   
 
 автор: cernos   (20.02.2005 в 13:01)   письмо автору
 
   для: gotbar   (20.02.2005 в 06:14)
 

Вот ответ на первый ваш вопрос:

<script language='JavaScript'>
var ar = new Array();
<?php
$_array
[]=1;
$_array[]=2;
$_array[]=3;
$_array[]=4;
$_array[]=5;
$_array[]=6;

for(
$i=0;$i<count($_array);$i++)
{
  echo 
"ar[".$i."]=".$_array[$i].";\n";

        }
?>
</script>


Вот ответ на 2 ваш вопрос:



<html>

<head>
  <title>TEST</title>
</head>

<body>

<form action="?" method=get>
<select name=test>
<?php
$_array
[]=1;
$_array[]=2;
$_array[]=3;
$_array[]=4;
$_array[]=5;
for(
$i=0;$i<count($_array);$i++)
{
echo 
"<option ";

if(isset(
$_GET['test']) && $_GET['test']==$_array[$i]) {echo "selected";}

echo 
" value='".$_array[$i]."'>".$_array[$i]."\n";

        }
?>

</select>
<input type=submit value=Выбрать>
</form>
</body>

</html>

Есть массив $_array со значениями, которые забиваются в <select>--><option>
Если передаётся методом GET значение test, то мы сравниваем значение тест с имеющемся массивом и если значение совпадает, то мы ставим selected/

Ведь именно это вы хотели??

   
 
 автор: gotbar   (20.02.2005 в 15:29)   письмо автору
 
   для: cernos   (20.02.2005 в 13:01)
 

cernos

за предложеный вариант огромное спасибо!

да, в отношении цели все верно, но схему имплементации хотелось бы такую -->
1.массив как пхп-переменная передается в форму
2.при перезагрузке страницы javascript перенимает значения массива в свой массив
3. и методом document.forms[0].elements[2].options[n].selected = true; выделяются строчки.
Возможно ли такое осуществить в javascript?
Или это возможно только постированием блока select?

   
 
 автор: cernos   (20.02.2005 в 18:42)   письмо автору
 
   для: gotbar   (20.02.2005 в 15:29)
 

Дело в том что вы сильно по закрученному хотите, во первых это всё будет дольше грузится...
Это всё можно осуществить, но стоит ли так долго писать, если можно сделать всё намного легче.??
Да вам придётся переделать свой скрипт, пусть это будет и неохота.
Но через это учаться!

   
 
 автор: gotbar   (21.02.2005 в 01:46)   письмо автору
 
   для: cernos   (20.02.2005 в 18:42)
 

ну не совсем Вы правы насчет закрученности.
Просто хочется по-человечески сделать :)), а как (в этом Вы правы) я еще плохо ориентируюсь. Мне казалось, что наоборот через перзагрузку селекта
дольше будет.
Но раз спец говорит, что надо скрипт переделать, значит будем переделывать. :)

Еще раз спасибо

   
Rambler's Top100
вверх

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