Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /* Problem:
- * 1) I IE9 fungerer nedenfor asynkrone kode kun når man klikker på Kompatibilitetsvisning,
- * og da kun at skjemaet vises når en bruker velger et medlem. Når man så klikker på submit i
- * skjemaet, reloades siden (!) tilbake til utgangspunktet, db blir ikke oppdatert, og ingen
- * suksessmld blir vist...
- * 2) I Firefox og Opera skjer det ingenting når man klikker submit...man kan klikke til
- * krampa tar deg, men ingenting skjer - absolutt ingenting :p
- *
- * All kildekode kommer i en paste her. Og ja, jeg er nybegynner, og vil ikke ha dette
- * omdannet til objektorientert el.l. Vil bare finne ut hvorfor IE9, FF og Opera ikke
- * liker koden min ;)
- */
- ?>
- <?php
- //redvilkaar.php - Selve siden...
- ?>
- <!DOCTYPE html>
- <html lang="no">
- <head>
- <link rel="stylesheet" type="text/css" href="../style.css" />
- <!-- Script for asynkront å vise rediger kontrakt-vilkår i div id=vilkaar -->
- <script type="text/javascript" src="async.js"></script>
- <!-- JavaScript for validering -->
- <script language="javascript" type="text/javascript" src="../validater.js" ></script>
- </head>
- <body>
- <div id=velgVilkaar><?php include 'velgvilkaar.php';?></div><!-- Dynamisk listeboks -->
- <div id=vilkaar></div><!-- Her vises vilkåret (tittel og tekst) asynkront - samt mld om suksess -->
- <p> </p>
- <?php include '../copyright.html';?>
- </body>
- </html>
- <?php
- //async.js - JavaScript for kommunikasjon mellom bruker og server
- ?>
- /**
- * Funksjon som viser rediger vilkår skjema asynkront på siden (i div id="skjema")
- */
- function showVilkaar(str) {
- var request = new XMLHttpRequest();//Kaller funksjonen for å få objektet XMLHttpRequest
- /* Om responsen er fullstendig mottatt, sender vi til HTML tag'en med tagID (skjema) */
- request.onreadystatechange=function() {
- if (request.readyState==4 && request.status==200) {
- document.getElementById("vilkaar").innerHTML=request.responseText;
- }
- }
- request.open("GET","vilkaarskjema.php?i="+str,true);
- request.send();
- }
- /**
- * Funksjon som sender data til en php fil via POST og viser svar mottatt
- */
- function showSuccsess(php_file, tagID) {
- var request = new XMLHttpRequest();//Kaller funksjonen for å få objektet XMLHttpRequest
- /* Sjekker request status
- Om responsen er fullstendig mottatt, sender vi til HTML tag'en med tagID (skjema) */
- request.onreadystatechange = function() {
- if (request.readyState == 4) {
- document.getElementById(tagID).innerHTML = request.responseText;
- }
- }
- /* Oppretter nytt objekt og tilegner verdi fra skjema */
- var dataobjekt=new Object();
- dataobjekt.id=document.getElementById('ident').value;
- dataobjekt.tittel=document.getElementById('title').value;
- dataobjekt.tekst=document.getElementById('text').value;
- /* Validerer tittel og text */
- if (dataobjekt.tittel=="" || dataobjekt.tekst=="") {
- alert("Begge felt må være fylt ut!");
- } else {//Ingen feil funnet, benytter JSON stringify() for lettere å behandle data
- var the_data="data="+JSON.stringify(dataobjekt);
- request.open("POST", php_file, true);
- request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
- request.send(the_data); //Kaller på send() metoden med data som parameter
- }
- }
- /* Debugger - ikke i bruk etter lansering
- function debug(str) {
- document.getElementById("debug").innerHTML=str;
- }*/
- <?php //velgvilkaar.php - Fil som lager dynamisk listeboks, validerer og sender til JS
- $q=$_GET["i"];
- include("db_tilkobling.php");
- $sqlSentence="SELECT * FROM `q4vls_vucmemport_kontrakt`;";
- $sqlResult=mysql_query($sqlSentence) or die (mysql_error());
- $numOfRows=mysql_num_rows($sqlResult);
- ?>
- <form method="post" action="" id="selection" name="selection">
- <h5>Vennligst velg en oppføring å endre på:</h5>
- <select name="choice" id="choice" onchange="return selectedBox(document.selection.choice.value)&&showVilkaar(this.value)">
- <option selected="selected">Vennligst velg...</option>
- <?php
- for ($r=1;$r<=$numOfRows;$r++)
- {
- $rad=mysql_fetch_array($sqlResult);
- $q=$rad[0];
- print("<option value=\"$q\">$rad[1]</option>");
- }
- ?>
- </select>
- </form>
- <?php //vilkaarskjema.php - Skjema som viser endre kontrakt vilkår. Sender til JS
- $q=$_GET["i"];
- include("db_tilkobling.php");
- $sqlSentence="SELECT * FROM `q4vls_vucmemport_kontrakt` WHERE id='$q';";
- $sqlResult=mysql_query($sqlSentence) or die (mysql_error());
- $numOfRows=mysql_num_rows($sqlResult);
- $row=mysql_fetch_array($sqlResult);
- $title=$row[1];
- $text=$row[2];
- print("<table>");
- print ("<form method=\"post\" action=\"\" id=\"editSelection\" name=\"editSelection\" onsubmit=\"showSuccsess('service/redigervilkaar.php', 'vilkaar'); return false;\">");
- print("<input type=\"hidden\" value=\"$q\" name=\"ident\" id=\"ident\"> <br/>");
- print ("<tr><td>Tittel:</td> <td> <input type=\"text\" size=\"55px\" value=\"$title\" name=\"title\" id=\"title\"></td></tr> <br />");
- print ("<tr><td>Innhold:</td> ");
- print ("<td><textarea rows=\"20\" cols=\"60\" name=\"text\" id=\"text\">$text</textarea></td></tr>");
- print ("<tr><td></td><td><input type=\"submit\" value=\"Endre valgt punkt\" name=\"edit\" id=\"edit\"></td></tr>");
- print ("</form>");
- print ("</table>");
- ?>
- <?php //service/redigervilkaar.php - Fil som tar imot og behandler data
- include 'db_tilkobling.php';
- //Mottar data fra JS
- $datamotatt=$_POST["data"];
- //Dekoder JSON og henter verdiene
- $data=json_decode(stripslashes($datamotatt));
- $id=$data->id;
- $title=$data->tittel;
- $tekst=$data->tekst;
- //Oppdaterer databasen og skriver ut mld
- $sqlSentence2="UPDATE `q4vls_vucmemport_kontrakt` SET tittel='$title', innhold='$tekst' WHERE id='$id';";
- mysql_query($sqlSentence2) or die (mysql_error());
- echo '<p><strong>Oppføringen har blitt endret hvor tittelen er '.$title.'</strong></p>';
- ?>
Advertisement
Add Comment
Please, Sign In to add comment