Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyswietlanie funkcji
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
SoulRipper
Napisalem sobie skrypt js, poprzeplatany z php i napotkalem jeden problem. Chodzi o to, ze jak klikam na przycisk to zdarzenie onClick wywoluje funkcje ktora generuje nowy formularz na podstawie danych z poprzeniego. Wszystko dziala, tylko jak klikam button, to nowy formularz wyswietla mi sie na nowej stronie. Nie ma zadnych styli zaladownych itd. Ja bym chcial zeby caly skrypt niezaleznie od akcji dzial sie na jednej stronie, a nie przenosil uzytkownika w jakies inne miejsca.

Hilfe:)

Pozdrawiam
revyag
Bez obejrzenia kodu się nie obejdzie, więc wstaw go, albo daj jakiegos linka.
SoulRipper
Kod
<?
$menus = mysql_num_rows(mysql_query("SELECT * FROM link"));
$submenus = mysql_num_rows(mysql_query("SELECT * FROM submenu"));
$count_submenu = mysql_query("SELECT * FROM link WHERE submenu='1'");
?>
<HTML>
<HEAD>

</HEAD>
</BODY>
<form name=addMenu>

<table>
<tr>
<td>
    Wybierz kategorie:
</td>
<td>     
    <?
if ($count_submenu == 0)
{    
    echo "Brak linków odwoływujących się do submenu";
}    
else
{
    while($show_submenu = mysql_fetch_array($count_submenu))
    {
  echo '<input type="radio" name="id" value="'.$show_submenu[0].'" onClick="getSub(this)">'.$show_submenu[1].'<BR>';
    }
}
?>
</td>
<tr>
<td>
Podaj ilosc nowych linków
</td>
<td>
<input type=text name=amount>
</td>
<tr>
<td colspan=2>
<input type=button name=setMenu onClick="chkInt(this) " value=OK>
</td>
</table>
</form>

<script TYPE="text/javascript" LANGUAGE="JavaScript">
<!--
var i
var x = 0

function chkInt(button)
{
    var objekt = document.addMenu.amount.value
  var liczba = parseFloat(objekt)
    if(isNaN(liczba) || objekt == ""){
    
  alert("Błąd! Wprowadź liczbę")
  }    
    else
    {
  genMenu()
  button.disabled=true
    }

}

function genMenu()
{
  for (var a = 0; a < document.addMenu.id.length; a++)
    {
  if(document.addMenu.id[a].checked)
  {
     break
  }
    }
    
    var textValue = document.addMenu.amount.value
    var radioValue = document.addMenu.id[a].value
    document.write("<form method=post action=main.php?action=link_addsub name='addSub'><input type=hidden name=ilosc value="+textValue+"><input type=hidden name=id value="+radioValue+">")
    while (x < textValue)
    {
        var count_reg = <? echo $menus+$submenus+1?> + x;
        x++;
     document.write("<input type='text' name=nazwa_"+x+" value='link "+x+"'><input type='text' name=art_id_"+x+" value="+ count_reg +"><input type='text' name=kolejnosc_"+x+" value="+x+"><BR>");
    }
    
    document.write("<input type=submit value=OK name='dalej'")
    document.write("</form>")
  
}
// -->
</SCRIPT>
<?
if($_POST['dalej'] == "OK")
{
  $ile = 0;
  while ($ile < $_POST['ilosc'])
  {
     $ile++;
     $nazwa = $_POST['nazwa_'.$ile];
    $id = $_POST['art_id_'.$ile];
     $kolejnosc = $_POST['kolejnosc_'.$ile];
     $ref = $_POST['id'];
     mysql_query("INSERT INTO submenu (nazwa,art_id,referer,kolejnosc) VALUES ('$nazwa','$id','$ref','$kolejnosc');");
      
  }
  if(mysql_affected_rows() == "1")
  {
     echo "Dodano pozycje w Sub Memu!";
  }
  else
  {
     echo "<div class=error>Bł±d podczas wykonywania zapytania.</div>";
    }
}
?>
</BODY>
</HTML>


Caly kodzik. Moze wydac sie troche 'zakrecony', ale dziala smile.gif
Moj problem tyczy sie funkcji genMenu()
revyag
To dlatego że używasz document.write.
Zrób sobie diva, i w nim zapisuj formularz.
Będzie to wyglądało tak:
Kod
document.getElementById("divform").innerHTML+="<form method=post action=main.php?action=link_addsub name='addSub'><input type=hidden name=ilosc value="+textValue+"><input type=hidden name=id value="+radioValue+">";

  1. <div id="divform"></div>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.