PDA

Zobacz pełną wersję : artykuł + kod php + html + javascript



adam_now
04-09-2006, 12:17
Stworzyłem sobie plik, który jest mi niezbędny w tworzonym serwisie. Zawiera on w sobie troche phpa, htmla (formularz), javascriptu, dla jasności kod poniżej:


<?php
//polaczenie z serwerem
$connect = mysql_connect("localhost","root","rootpsw") or die("Could not connect: " . mysql_error());

//ustawienia bazy danych
mysql_select_db("uczelnie_pkt");

//tworzenie tablicy uczelnie
$query = "SELECT DISTINCT k.uczelnia " .
"FROM kierunki k";

//tworzenie tablic dla javascriptu
$results_ucz = mysql_query($query) or die(mysql_error());

for($i = 0; $i < mysql_num_rows($results_ucz); $i++)
{
$row = mysql_fetch_row($results_ucz);
$uczelnie[$i] = $row[0];

//tworzenie tablicy wydzialy
$query = "SELECT DISTINCT k.wydzial " .
"FROM kierunki k " .
"WHERE k.uczelnia = '$row[0]'";

$results_wydz = mysql_query($query) or die(mysql_error());

for($j = 0; $j < mysql_num_rows($results_wydz); $j++)
{
$row = mysql_fetch_row($results_wydz);
$wydzialy[$i][$j] = $row[0];
}
}

mysql_close($connect);
?>

<html>
<body>

<form name="formcombo" method = "post" action="form2.php">
<p>Wybierz uczelnie:
<select name="uczelnia" onChange="makeChange_uczelnia(this.options.selectedIndex)" style="width:50%;">
<?php
foreach($uczelnie as $value)
echo "<option>$value</option> \n";
?>
</select>
</p>

<p>Wybierz wydzial:
<select name="wydzial" style="width:50%;">
<?php
foreach($wydzialy[0] as $value)
echo "<option>$value</option> \n";
?>
</select>
</p>

<p>
<input type="submit" name="submit" value="OK">
</p>
</form>

</body>
</html>


<script language="javascript" type="text/javascript">
<!--
//tablica z wydzialami
var temp = document.formcombo.uczelnia.options.length;
var opcje_wydz = new Array(temp);
for(var i = 0; i < temp; i++)
opcje_wydz[i] = new Array();

<?php
for ($i = 0; $i < count($wydzialy); $i++)
{
for ($j = 0; $j < count($wydzialy[$i]); $j++)
{
echo "opcje_wydz[$i][$j] = new Option(";
echo "\"";
echo $wydzialy[$i][$j];
echo "\"";
echo ");\n";
}
}
?>

function makeChange_uczelnia(index)
{
//czyszczenie comboboxa
var list_wydz = document.formcombo.wydzial;
for(var i = list_wydz.options.length; i >= 0; i--)
list_wydz.options[i] = null;

//odpowiednie wypelnienie comboboxa
for(var i = 0; i < opcje_wydz[index].length; i++)
list_wydz.options[i] = new Option(opcje_wydz[index][i].text);
}

//-->
</script>


Jak widać jakoś wybitnie skomplikowane to to nie jest, bo i moja wiedza niewielka z tego zakresu :(. I teraz postanowiłem to wkleić do jakiegoś artykułu (by móc to wyswietlic w serwisie) korzystając z dodatku rdaddphp w taki sposób {rdaddphp file=wyszukiwarka/temp.php}.

Niestety spowodowało to poniższy komunikat w artykule:
Warning: Attempt to assign property of non-object in C:\Program Files\Apache Group\Apache2\test\Joomla\mambots\content\rd_addph p.php on line 63

Najprawdopobniej jest to spowodowane checią umieszczenia naraz (jednym ruchem) php + htmla + javascriptu i teraz moje pytanie jak to rozwiązać, czyli jak najlepiej (i najłatwiej) umieścić taki kod (stronę) jak powyżej jako część serwisu.