Avatar billede pmnielsen Novice
02. december 2010 - 20:20 Der er 10 kommentarer og
1 løsning

ajax / php forms

har en side med et <form><select><div id="navn"><option>..........
jeg bruger ajax til ændre værdier i div og derved ændre værdierne i <option> efter en valg på siden.
det virker alt sammen godt nok, med når jeg sender mit form ved hjælp af $_POST får jeg en Undefined index: fejl..

hvis laver en ikke dynamisk form virker det.

Er det fordi man ikke kan ændre i en form uden at reloade siden??

Det hele skulle gerne virke ligesom på eksperten.dk hvor man kan vælge en kategori og når man har valgt får man nogle flere valg muligheder.

håber der er til at forstå og der er nogen der kan hjælpe.
Avatar billede jakobdo Ekspert
02. december 2010 - 21:41 #1
Du kunne evt. starte med at vise din kode eller hjemmeside.
Det kunne jo tyde på du prøve at tilgå et index, som ikke findes.
Avatar billede miqe Nybegynder
02. december 2010 - 23:41 #2
Enig... frem med "banditten" ;-)
Avatar billede jakobdo Ekspert
03. december 2010 - 08:14 #3
miqe: Siger du også det til pigerne? :o)
Avatar billede miqe Nybegynder
03. december 2010 - 08:21 #4
jakobdo: Hæhæ, havde nok ikke brugt ordet 'banditten' hvis Peder havde været en pige, men jeg havde nog fundet på en sjov ækvivalent :-)
Avatar billede pmnielsen Novice
05. december 2010 - 20:13 #5
Ok her er noget kode.. der er sku nok meget rodet med jeg prøver.
der er to filer
starter med test.php når man trykke på skift knappen ændre værdien i <select> feltet sig som de skal, med værdier fra databasen.
man når man derefter trykke på send kommer der ikke noget fra $_POST['form']

Håber i forstå bare lidt af det :-)

                            test.php
<?php
session_start();
include "dbc.php";
?>
<HTML>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<link rel="stylesheet" type="text/css" href="templates/style.css" />
<TITLE>test</TITLE>
<script type="text/javascript" >

function skift2(str)
{
if (str=="")
  {
  document.getElementById("form").innerHTML="";
  return;
  }
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("form").innerHTML=xmlhttp.responseText;
        }
  }
xmlhttp.open("GET","makeoption.php?q="+str,true);
xmlhttp.send();

}
</script>
</head>
<body>
<form method="post" action="">
<div id="form">
<select name="test">
<option value="0">ikke mulig</option>
</select>
</div>
<input type="submit" value="send"></input>
</form>
<button onmousedown="skift2(2)">skift</button>
<?php
if (isset($_POST['test'])) echo $_POST['test'];
?>
</body>
</html>




                            makeoption.php
<?php
$q=$_GET["q"];

include "dbc.php"; //opretter fonbindelse til mysql database

$sql="SELECT * FROM bane WHERE baneid = '".$q."'";

$result = mysql_query($sql);

while($row = mysql_fetch_array($result))
  {      echo "<select name='form'";
  echo "<option value='0'>vælg noget</option>";   
      if ($row['t62']==="ja")    echo "<option value='1'>Valg 1</option>";
      if ($row['t58']==="ja") echo "<option value='2'>Valg 2</option>";
      if ($row['t54']==="ja") echo "<option value='3'>Valg 3</option>";
      if ($row['t49']==="ja") echo "<option value='4'>Valg 4</option>";
      if ($row['t45']==="ja") echo "<option value='5'>Valg 5</option>";
      if ($row['hvid']==="ja") echo "<option value='6'>Valg 6</option>";
      if ($row['gul']==="ja") echo "<option value='7'>Valg 7</option>";
      if ($row['blå']==="ja") echo "<option value='8'>Valg 8</option>";
      if ($row['rød']==="ja") echo "<option value='9'>Valg 9/option>";   
    echo "</select>";
  }

?>
Avatar billede miqe Nybegynder
05. december 2010 - 21:05 #6
Går ud fra at det er i IE du har problemet? Eller sker det også i Firefox, Chrome, Safari, Opera, etc..??

Problemet er muligvis at din innerHTML ikke opdaterer DOM træet ordentligt. Løsning på dette er beskrevet her:
http://domscripting.com/blog/display/99
Avatar billede miqe Nybegynder
05. december 2010 - 21:08 #7
Du kan muligvis have fordel i at bruge jQuery i stedet for ren javascript, da mange ting bliver løst mere eller mindere automatisk for dig.
http://jquery.com/
http://api.jquery.com/
jQuery har bl.a. ajax funktionalitet, der virker på tværs af browsere.
Avatar billede pmnielsen Novice
06. december 2010 - 20:00 #8
Jeg har kun prøvet i firefox ver. 3.6.12

Kan man på nogen måde se sidens kilde kode efter man har opdateret DOM??
så kunne det være man kunne se hvad der er galt.

Ellers må jeg jo igang med at se på hvad jquery er.
Avatar billede miqe Nybegynder
06. december 2010 - 21:47 #9
Installer de plugin til firefox der hedder firebug.
Med det kan du analysere både DOM træet og en masse andet (html, css, js, net, osv.)
Firebug i kombination med "Web Developer" (et andet plugin) er er en webdesigners ven i Firefox.
God idé at teste i ander browsere også.
Avatar billede pmnielsen Novice
19. december 2010 - 19:50 #10
Tak for hjælpen miqe. jeg har ikke fået løst problemmet endnu. Men har haft meget hjælp af dine kommentar. skriv svar for point
Avatar billede miqe Nybegynder
19. december 2010 - 19:59 #11
Svar!

Håber det løser sig.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester