javascript verwerken invoer veld

Pagina: 1
Acties:
  • 284 views sinds 30-01-2008
  • Reageer

  • eatualive
  • Registratie: Juni 2005
  • Laatst online: 22-02 21:31
ik zit met het volgende ik heb een php script die van alles omzet post en weet ik het.
Nou moet 1 veld waar automatich een php script een value er in stop ook aangepast kunnen worden.

Nu komt het javascript gedeelte als deze wordt aangepast wordt deze invoer bewerkt en de eerste letter erafgehaald en wordt in een hidden input field gezet. Alleen ik krijg het niet voor elkaar.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
?>   <td width=33><INPUT  NAME=kabel_nr size=5 maxlength=4 value=<?php echo $kabelnr //als in dit tekst vak iets ingvoerd word moet de letter er af  ?>> </td>


<script type="text/javascript">
var tekenReeks = kabel_nr ;//dit is eerste inputveld waar de waarde wordt ingevuld
tekenReeks = tekenReeks.toString(); 
var letter = tekenReeks.substr(0); 
var getallen = tekenReeks.substr(1,tekenReeks.length);
window.onchange = function(){
document.form.sort.value = getallen;
}
</script>

<?
echo "  </tr>";
echo "  <tr>";
echo "    <td align=right valign=middle><span class=style2>Opmerking:</span></td>";
echo "    <td colspan=2><INPUT NAME=opmerking size=30 maxlength=30></td>";
?> <input name=sort type="hidden" value=""> <?  // hier moet de variable ingezet worden.


Ik weet niet zeker of dat ik het javascript er tussen in mag zetten want meestal moet dit in de head komen. Zie de 2 comentaar lijntjes om te zien over welke input fields het gaat.


Kort gezegt wat doe ik fout en wat moet erbij om deze code werkend te krijgen?

code:
1
2
3
4
5
6
7
8
9
<script type="text/javascript">
var tekenReeks = kabel_nr ;//dit is eerste inputveld waar de waarde wordt ingevuld
tekenReeks = tekenReeks.toString(); 
var letter = tekenReeks.substr(0); 
var getallen = tekenReeks.substr(1,tekenReeks.length);
windows.onchange = function(){
document.form.sort.value = getallen;
}
</script>


Ik weet niet zeker of dat de onchange goed is.

[ Voor 39% gewijzigd door eatualive op 21-04-2006 08:50 ]


  • RedBeard
  • Registratie: April 2006
  • Niet online
Ik zie niet helemaal wat je wilt doen, maar ik zie wel dat je INPUT Name op "kabel_nr" staat en dat je in je JS "kabel" gebruikt.

Je javascript mag je in principe overal plaatsen

I'm not anti-social, I'm just not user friendly


  • eatualive
  • Registratie: Juni 2005
  • Laatst online: 22-02 21:31
Ja sry foutje aangepast maar hij werkt nog niet.

  • André
  • Registratie: Maart 2002
  • Laatst online: 20-02 09:23

André

Analytics dude

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
<form name="bla">
  <input name="kabel_nr" size="30" maxlength="30" onchange="doe">
</form>
<script type="text/javascript">
  function doe()
  {
    var tekenReeks = document.forms["bla"].elements["kabel_nr"].value;
    tekenReeks = tekenReeks.toString(); 
    var letter = tekenReeks.substr(0); 
    var getallen = tekenReeks.substr(1,tekenReeks.length);
    document.forms["bla"].elements["sort"].value = getallen;
  }
</script>

  • eatualive
  • Registratie: Juni 2005
  • Laatst online: 22-02 21:31
Ik heb erin verwerkt maar iets werkt er niet, het kan zijn dat het bij het posten ligt maar dat werkte eerst wel toen ik dat deed met een php variable.

Hier het laatste gedeelte met de code, op 1 of andere manier blijft er een 0 gepost worden in mijn database.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?
echo "  </tr>";
echo "  <tr>";
echo "    <td align=right valign=middle><span class=style2>Opmerking:</span></td>";
echo "    <td colspan=2><INPUT NAME=opmerking size=30 maxlength=30></td>";
?> <input name=sort type="hidden" value=""> <?  // hier moet de variable ingezet worden.
echo "    <td><input name=submit type=submit class=style2 VALUE=ADD></td>";
echo "  </form></td>";
echo "  </tr>";
echo "</table>";
echo "<table width=467 border=0>";
echo "  <tr>";
echo "    <td width=81><div align=left class=style1></div></td>";
echo "    <td width=376><span class=style1>* Opmerking hoeft niet perse ingevuld worden </span></td>";
echo "  </tr>";
echo "</table>";
 }
else 
 { 
 $omschrijving = empty($_POST['omschrijving']) ? die ("<CENTER>U hebt geen omschrijving ingevuld!<BR><META HTTP-EQUIV=Refresh CONTENT=2; URL=javascript:history.back()></CENTER>") : mysql_escape_string($_POST['omschrijving']);
 $bericht = empty($_POST['kabel_nr']) ? die ("<CENTER>U hebt geen kabel nr ingevuld!<BR><META HTTP-EQUIV=Refresh CONTENT=2; URL=javascript:history.back()></CENTER>") : mysql_escape_string($_POST['kabel_nr']);


 $query = "INSERT INTO kabels SET ID='', omschrijving='".$_POST['omschrijving']."', merk='".$_POST['merknaam']."', kabel_nr='".$_POST['kabel_nr']."', opmerking='".$_POST['opmerking']."', sort='".$_POST['sort']."'"; 
 $result = mysql_query($query) or die ("Fout in query: $query. ".mysql_error()); 
 echo "<CENTER><B>De kabel is succesvol toegevoegd</B></CENTER>"; 
 echo "<META HTTP-EQUIV=Refresh CONTENT=2; URL=javascript:history.back()>";
 } 

?>

[ Voor 24% gewijzigd door eatualive op 21-04-2006 09:13 ]


  • André
  • Registratie: Maart 2002
  • Laatst online: 20-02 09:23

André

Analytics dude

Je weet zeker dat je string ontleed functies precies doen wat je wil?

  • eatualive
  • Registratie: Juni 2005
  • Laatst online: 22-02 21:31
André schreef op vrijdag 21 april 2006 @ 09:15:
Je weet zeker dat je string ontleed functies precies doen wat je wil?
Ja het zou op deze manier moeten werken, hoe zou ik het makkelijkst dat javascript gedeelte kunnen testen of dat hij hem goed ontleed?
met php kun je dit makkelijk doen met een echo en dan zie je waar het fout gaat.

  • André
  • Registratie: Maart 2002
  • Laatst online: 20-02 09:23

André

Analytics dude

alert()

;)

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 09:03

Creepy

Tactical Espionage Splatterer

Javascript, en dat op de vroege ochtend :P
Move -> Webdesign, Markup & Clientside Scripting

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • eatualive
  • Registratie: Juni 2005
  • Laatst online: 22-02 21:31
Er komt nog geen nummer in het 2de input veld, nog niet eens een 0 dus ergen zit er een fout in.
De post werk wel heb ik getest.

Op 1 of ander manier doet de javascript zijn werk niet.

[ Voor 33% gewijzigd door eatualive op 21-04-2006 09:38 ]


  • Blackbird-ce
  • Registratie: September 2005
  • Laatst online: 16-02 21:58
twee dingen tussendoor:

1)
code:
1
$query = "INSERT INTO kabels SET ID='', omschrijving='".$_POST['omschrijving']."', merk='".$_POST['merknaam']."', kabel_nr='".$_POST['kabel_nr']."', opmerking='".$_POST['opmerking']."', sort='".$_POST['sort']."'";

"Insert into" met een "set"? :?


2)
code:
1
2
    var letter = tekenReeks.substr(0); 
    var getallen = tekenReeks.substr(1,tekenReeks.length);

'letter' wordt hier toch de gehele inhoud van tekenReeks? Uit mijn hoofd meen ik dat substr() twee parameters vereist: beginpositie en aantal gewenste karakters. Als je de tweede weg laat, dan neemt substr() automatisch alles vanaf de beginpositie.

vb. tekenReeks = "12345";
tekenReeks.substr(0) is dan "12345"
tekenReeks.substr(0,1) is dan "1"
tekenReeks.substr(3) is dan "45"
tekenReeks.substr(3,1) is dan "4"

Om dezelfde reden werkt tekenReeks.substr(1,tekenReeks.length); dus niet goed volgens mij. Die probeert vanaf het tweede karakter de gehele string te nemen...

vb. tekenReeks = "12345";
tekenReeks.substr(1,4) is "2345"
tekenReeks.substr(1,5) werkt niet (denk ik)

verklaart waarom je dus geen (goed) getal krijgt.

Kan ik fout hebben hoor :)

[ Voor 44% gewijzigd door Blackbird-ce op 21-04-2006 10:36 . Reden: vergat een stukje ;) ]


Verwijderd

Ten eerste, staan je FORM tags wel op de juiste plaats? Ik zie na je FORM SLUITEN een TD SLUITEN die daar niet hoort. Tevens wil het wel eens voorkomen dat een form niet goed werkt als je de tags binnen half binnen/half buiten cellen hebt staan; plaats ze liever buiten de table.

Ten tweede, mag ik vragen waaróm je dit met javascript wil doen? Je verwerkt je post met php, dus waarom kun je die string niet gewoon met php pakken?

Verwijderd

Wat is daar mis mee? Doe ik ook altijd als ik maar 1 record hoef in te voegen.

  • eatualive
  • Registratie: Juni 2005
  • Laatst online: 22-02 21:31
Verwijderd schreef op vrijdag 21 april 2006 @ 10:39:
Ten eerste, staan je FORM tags wel op de juiste plaats? Ik zie na je FORM SLUITEN een TD SLUITEN die daar niet hoort. Tevens wil het wel eens voorkomen dat een form niet goed werkt als je de tags binnen half binnen/half buiten cellen hebt staan; plaats ze liever buiten de table.

Ten tweede, mag ik vragen waaróm je dit met javascript wil doen? Je verwerkt je post met php, dus waarom kun je die string niet gewoon met php pakken?
ik heb hem nu weggehaald en ik heb ook wel eens gekken fouten meegemaakt met form name en post. Als die verkeerdom staan kan hij ook problemen geven. Ik heb verschillende dingen geprobeert en nu ook de td weggehaald maar dit heeft niet geholpen.

De reden dat ik met javascript is omdat die het kan omzetten op het moment dat je iets intypt. PHP kan dit niet, mischien als je het met een omweg doet maar ik zou zo niet weten hoe.

Verwijderd

eatualive schreef op vrijdag 21 april 2006 @ 11:12:
De reden omdatik het het met javascript is omdat die het kan omzetten op het moment dat je iets intypt. PHP kan dit niet, mischien als je het met een omweg doet maar ik zou zo niet weten hoe.
Dan snap ik, maar ik was even benieuwd WAAROM je het om wil zetten terwijl het getypt wordt. Wat doe je dan verder nog met die letter, wordt er ergens een lijst geupdate ofzo? Gewoon uit nieuwsgierigheid.

  • eatualive
  • Registratie: Juni 2005
  • Laatst online: 22-02 21:31
Dat nummer gebruik ik voor het sorteren en moet gelijk zijn als het S nummer. Eerst wou ik een tabel hebben met alle kabels erin en sorteerde ik op S1 tot S99 alleen hij deed dit verkeerd omdat hij deze als string pakte en de sortering ging dan zo:
S1
S10
S2

Ik heb dit opgelost om er een sorteer kolom bij te maken en zo te sorteren op die nummer.
In dit script kunnen ze kabels dus toevoegen alleen voor de gebruiker is het natuurlijk niet mooi als hij eerst een S nummer in moet voeren en daarna een veld zonder S nummer met alleen het getal.

Dit alls was ook neit op te lossen met autoincrediment omdat hij meerdere typen kabels in dezelfde tabel staan en andere letter gebruiken en als ik dan ooit een kabel ertussen schuif en hij krijg automatich een opvolgend id klopt de sortering niet meer.

En het s nummer wordt ook gepost en via dat s nummer kun je de kabel vinden in de kast.
De boel werk wel als het telkens het volgende nummer is omdat ik het dan wel met php kan oplossen maar op het moment dat er ooit een kabel tussenuitvalt en ik wil die er weer tussen voegen heb ik dit script nodig.

Ik hoop dat je het begruipt wat ik hier heb gezegt.

[ Voor 17% gewijzigd door eatualive op 21-04-2006 11:32 ]


  • eatualive
  • Registratie: Juni 2005
  • Laatst online: 22-02 21:31
Ik heb het gevonden.

Hierbij de werkende code:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<script type="text/javascript"> 
function doe() 
{ 
    var tekenReeks = document.getElementById('kabel_nr').value;//Ingevulde waarde uit veld halen 
    tekenReeks = tekenReeks.toString(); //Omzetten naar String 
    if(tekenReeks.length > 1) //Checken of er meer dan 1 character is ingevuld 
    { 
        var einde = tekenReeks.length - 1;//Lengte van de rij bepalen 
        var getallen = tekenReeks.substr(1,einde);//Getallen eruit halen 
        document.getElementById('sort').value = getallen; //Getallen in het andere veld zetten 
    } 
} 
</script>

<INPUT  NAME="kabel_nr" id="kabel_nr" size="5" maxlength="4"  onchange="doe();" value=<?php echo $kabelnr ?> >

 <input name="sort" id="sort" value="" >
Pagina: 1