Avatar billede bmk1971 Juniormester
04. januar 2013 - 11:59 Der er 9 kommentarer og
1 løsning

php og javascript.

Hej.

Jeg har et problem med noget PHP code og noget javascript kode som ikke vil køre sammen. Hver for vil det godt. Problemet er at php kode aldrig kommer til at kører.. Hvis jeg fjerner linien i form onsubmit="return enabled(this)" er der ingen problemer. Jeg vil dog gerne have det hele til at spille sammen. Jeg har på fornemmelsen at return proceduren ikke kører i javascriptet og der dermed aldrig postes noget.

På forhånd tak.

<script type="text/javascript">
function enabled(hh){
if (hh.submit.disabled == false )
{
 
  document.form1.submit.disabled=true;
  document.form1.submit1.disabled=false;
  return false;
}
else

document.form1.submit.disabled=false;
  document.form1.submit1.disabled=true;

  return false;
}
<?php
if (isset($_POST['submit']))
{
   
skift(1,1); //kald af php funktion.


   
}
else
if (isset($_POST['submit1']))
{
    skift(1,0); //kald af php funktion.
}
?>
<tr>
<form name="form1" action="" method="post" onsubmit="return enabled(this)" >
<td> Første lyskontakt.</td>
<td><input type="submit" name="submit" value="Tænd"  ></td>
<td><input type="submit" name="submit1" value="Sluk"></td>
</form>
Avatar billede keysersoze Guru
04. januar 2013 - 13:54 #1
PHP og javascript kører 2 forskellige steder - det ene på klienten og det andet på serveren - så du kan ikke blande det sammen som det ser ud til at du forsøger. Samtidig er din kode vist ikke helt færdig - hvor er din afsluttende </script>?
Avatar billede bmk1971 Juniormester
04. januar 2013 - 16:25 #2
Hejsa.
Tak for svaret. Nu er jeg ret ligeglad hvordan det gøres de forskellige ting kan gøres. Det skal bare gøres. 
</script> fejlen er en kopi-paste fejl. Den er i min kode. Grunden til at jeg kører PHP er at jeg skal kunne køre en Sudo linux kommando fra min hjemmeside. Det er det som PHP funktionen gør. Hvis det kan lade sig gøre fra en Javascript er jeg meget åben overfor at køre det via denne. Min php procedure er en shell_exec med forskellige handlinger.
$outPut = shell_exec("sudo ------- ");
echo "<pre>$outPut</pre>";
Ellers skal jeg kunne disable knapper via php.
Avatar billede olsensweb.dk Ekspert
04. januar 2013 - 16:32 #3
hvis du fra js skal kører noget serverside skal du kigge på AjAX.
prøv at google php ajax tutorial
Avatar billede keysersoze Guru
04. januar 2013 - 19:04 #4
Du kan "kun" bruge PHP som du ønsker ved, som foreslået, at benytte AJAX eller lave et roundtrip til serveren. AJAX lyder umiddelbart som den rigtige tilgang.
Avatar billede bmk1971 Juniormester
07. januar 2013 - 23:18 #5
ok Det er lykkedes mig at få AJAX til at kører nogenlunde. Jeg har kaldt nogle php-funktioner via en javascript. Det er lykkedes at sende det over. Jeg har brugt følgende guide.
http://simpletutorials.com/?path=tutorials/javascript/simple_ajax
Ligenu er min udfordringer at få sendt parameter eller variabler over. Jeg har 2 forskellige parameter/variabler som jeg meget gerne vil have over i en PHP fil.

Jeg har forsøgt lidt med 
var  the_data = document.getElementById('submit').value; Jeg har dog lidt svært ved at forstå hvordan man sender og modtager disse data.
Avatar billede keysersoze Guru
08. januar 2013 - 10:23 #6
Nu har jeg ikke kigget deres javascript helt igennem, men så vidt jeg kan se så skal du i deres eksempel sende parametre gennem querystring.

Et alternativt er at du i stedet benytter http://api.jquery.com/jQuery.ajax/ - det er brugt af mange og derfor lettere at finde eksempler på samt få hjælp til.
Avatar billede olsensweb.dk Ekspert
08. januar 2013 - 17:46 #7
din PHP kan gøres enklere ved at bruge den indbygget json_encode function http://php.net/manual/en/function.json-encode.php

prøv at kigge på dette eks, med brug af jquery (hurtigt banket sammen)
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
    <title></title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
</head>
<body>
<form id="myForm">
<input type="radio" name="typename" value="film">search in film<br>
<input type="radio" name="typename" value="music" checked>search in music
</form>
<input type="text" id="hentval" value=""><br><br>
First <input type="text" id="first" name="first" readonly="readonly"><br>
Last  <input type="text" id="last" name="last" readonly="readonly"><br>
Address <input type="text" id="address" name="address" readonly="readonly"><br>
<script type="text/javascript">
    $("#hentval").blur(function(){
        var val = $("#hentval").val();
        var typename = $('input[name=typename]:checked', '#myForm').val();
       
        var url = "req.php";       
        var params = "id=" + val +"&type="+typename;
        $.ajax({           
            type: "POST",
            url: url,           
            data: params           
        })
        .done(function (json) {
            var ar = JSON.parse(json);
            $("#first").val(ar.first);
            $("#last").val(ar.last);
            $("#address").val(ar.address);           
        });       
    });
</script>
</body>
</html>


reg.php
<?php
$id=$_POST['id'];
$type=$_POST['type'];
// dette bør vare en database
switch($type){
    case "film":
        switch($id){
            case 1: $value = array('first' => 'Steven', 'last' => 'Spielberg', 'address' => '1234 Unlisted Drive'); break;
            default :     $value = array('first' => 'Unknown', 'last' => 'Unknown', 'address' => 'Unknown'); break;
        }       
    break;
    case "music":
        switch($id){
            case 1: $value = array('first' => 'Freddie', 'last' => 'Mercury', 'address' => 'RIP Made in Heaven'); break;
            case 2: $value = array('first' => 'Mike', 'last' => 'Oldfield', 'address' => 'Moonlight Shadow'); break;
            default :     $value = array('first' => 'Unknown', 'last' => 'Unknown', 'address' => 'Unknown'); break;
        }       
    break;
}
echo json_encode($value);
?>
Avatar billede bmk1971 Juniormester
13. januar 2013 - 22:41 #8
Jeg har fået løst problemet med AJAX
Avatar billede keysersoze Guru
13. januar 2013 - 23:26 #9
præcis som vi foreslog, så hvorfor beholde point?
Avatar billede bmk1971 Juniormester
14. januar 2013 - 00:48 #10
Undskyld. Jeg kender ikke så meget til siden og prøvede at give jer point. Men det kunne jeg ikk.
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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