|
|
|
| доброе всем время суток
вот по поиску прошерстила весь форум, но ответа на свои 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%"> </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">
</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">
<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> </p>
<textarea name="textarea" cols="95" rows="20"><?php echo $_POST['textarea'] ?></textarea>
</td>
</tr>
</table>
</form>
</body>
</html>
|
| |
|
|
|
|
|
|
|
для: 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/
Ведь именно это вы хотели?? | |
|
|
|
|
|
|
|
для: cernos
(20.02.2005 в 13:01)
| | cernos
за предложеный вариант огромное спасибо!
да, в отношении цели все верно, но схему имплементации хотелось бы такую -->
1.массив как пхп-переменная передается в форму
2.при перезагрузке страницы javascript перенимает значения массива в свой массив
3. и методом document.forms[0].elements[2].options[n].selected = true; выделяются строчки.
Возможно ли такое осуществить в javascript?
Или это возможно только постированием блока select? | |
|
|
|
|
|
|
|
для: gotbar
(20.02.2005 в 15:29)
| | Дело в том что вы сильно по закрученному хотите, во первых это всё будет дольше грузится...
Это всё можно осуществить, но стоит ли так долго писать, если можно сделать всё намного легче.??
Да вам придётся переделать свой скрипт, пусть это будет и неохота.
Но через это учаться! | |
|
|
|
|
|
|
|
для: cernos
(20.02.2005 в 18:42)
| | ну не совсем Вы правы насчет закрученности.
Просто хочется по-человечески сделать :)), а как (в этом Вы правы) я еще плохо ориентируюсь. Мне казалось, что наоборот через перзагрузку селекта
дольше будет.
Но раз спец говорит, что надо скрипт переделать, значит будем переделывать. :)
Еще раз спасибо | |
|
|
|