# eingabefeld mit punkten trennen



## romu (30. Juni 2004)

Guten morgen alle zusammen.

Ist es möglich , eine eingabemaske zu erzeugen die durch punkte getrennt ist ?

ich stelle mir das ungefähr so vor:

123.234.345.789

Die Ziffern sollen eingegeben werden, die punkte sollen schon da stehen. (so wie eine serial die man bei einem programm eingibt).
Wenn die ersten 3 ziffern eingegeben sind, soll er gleich über den punkt springen damit ich die nächsten ziffern eingeben kann.

Geht so etwas mit html bzw. php?

Grüße

romu


----------



## Krypthonas (30. Juni 2004)

Hallo.

Schöne Frage die du da gestellt hast, endlich mal eine gelungene andere JavaScript Frage. 
Also ich sage mal gleich ganz deutlich das PHP dazu überhaupt nicht geeignet ist , quasi alle Serverseitigen Scripte. JavaScript ist da klar im *Vorteil*.

Zu deiner Problemstellung  :

So einfach ist das nicht getahn mit den _Punkten und Inputs_. Da muss man etwas improvisieren:

Hier der Code:


```
<html>
<head>
<title>IP Adresse</title>
<style type="text/css">
input.inputs{
	border:0px solid #ffffff;
	height:22px;
	font-family:Verdana;
	font-size: 14px;
	width:30px;
}



</style>
<script language="JavaScript" type="text/javascript">
var thisInput	= new Array();
thisInput.push("IP1","IP2","IP3","IP4")
var IP	="";
function getIP()
	{
		IP="";
		for(i=0;i<thisInput.length;i++)
			{
				var SelItem	= thisInput[i];
				if(document.getElementById(SelItem)!=null && document.getElementById(SelItem).value!=="")
					{
						if(SelItem!==thisInput[thisInput.length-1])
							{
								var ZmObj	=	" . ";
							}
						else
							{
								var	ZmObj	=	"";
							}
						IP+=document.getElementById(SelItem).value + ZmObj;
					}
			}
	
		document.getElementById("createIP").innerHTML=IP;
	}


function checkValues(ObjID)
	{
		var thisValue	=	document.getElementById(ObjID).value;
		if(thisValue.length == 3)
			{
				var ObjT	= ObjID.split("IP");
				var ObjZ	=ObjT[1];
				ObjZ++;
				//alert(ObjZ);
				document.getElementById("IP" + ObjZ).focus();
			}	
		getIP();
		
	}


</script>
</head>
<body>
<table cellpadding="0" cellspacing="0" border="0" width="200" height="26">
  <tbody>
		<tr>
			
      <td width="200" style="border:1px solid #cccccc;font-family:verdana;font-size:14px" height="26" valign="middle"> 
        <input type="text" name="IP1" id="IP1" size="3" maxlength="3" onKeyUp="checkValues('IP1');" class="inputs"> . 
				<input type="text" name="IP2" id="IP2" size="3" maxlength="3" onKeyUp="checkValues('IP2');" class="inputs"> . 
				<input type="text" name="IP3" id="IP3" size="3" maxlength="3" onKeyUp="checkValues('IP3');" class="inputs"> . 
				<input type="text" name="IP4" id="IP4" size="3" maxlength="3" class="inputs" onKeyUp="checkValues('IP3');">
        IP </td>
		</tr>
	</tbody>
</table>
<table cellpadding="0" cellspacing="0" border="0" width="200">
	<tbody>
		<tr>
			<td width="75" style="border:1px solid #cccccc;font-family:verdana;font-size:12px">
			Deine IP:
			</td>
			<td width="125" id="createIP">
			
			
			</td>
		</tr>
	</tbody>
</table>

</body>
</html>
```

In diesem Sinne


----------



## romu (30. Juni 2004)

*tausend dank*

klappt wunderbar :.))


----------



## Tucker (30. Juni 2004)

> _Original geschrieben von Krypthonas _
> Also ich sage mal gleich ganz deutlich das PHP dazu überhaupt nicht geeignet ist , quasi alle Serverseitigen Scripte.



Gut, sicherlich geht das mit PHP nichrt clientseitig, streite ich nicht ab, aber das man sowas mit PHP überhaupt nicht realisieren kann dementiere ich. Es gibt doch Funtionen, die Zeichen in einem String (Eingabe wird ja zu STring) abzählen und nach dem Zeichen ein Zeichen einfügen. Hab jetzt zwar nicht die entsprechende Funtion im Kopf, aber eine andere Möglichkiet wäre ja auch, statt des Punktes ein Leerzeichen zu setzen und dieses dann mit ereg_replace() oder str_replace() ersetzen.

In dem Falle kommt es ganz drauf an, was er mit der Eingabe bewirken will. Wäre vielleicht hilfreich das zu wissen, da man sich ja dadúrch möglicherweise eine Menge Schreibarbeit ersparen kann.


----------



## Krypthonas (30. Juni 2004)

Ich glaube du verstehst den Sinn und Zweck nicht, welcher *romu* bezwecken will.

Willst du mir allen ernstes erzählen das du bei jedem onkeydown das Formular Senden willst, damit die Seite bzw. den IFrame neu lädt. Ey wo lebst du?

Dementieren brauchst du hier auch nichts, denn hier wurde  PHP nicht dazu negiert, dass er es nicht kann sondern extrem *ungeeignet* ist.

Serverseitige Scriptsprachen sollte man nur zur Realisierung der Struktur, Sicherheit sowie Ausgabe verwenden. Den Rest, also die Benutzer Seitigen(Client) User Controlls lässt man den Client Scripten ala JS. So einfach ist das.

In diesem Sinne


----------



## SilentWarrior (30. Juni 2004)

Hui, das ist ja ein Hammerscript. Würde es nicht einfacher gehen, wenn man einfach vier input-Felder nimmt und diese jeweils durch einen Punkt trennt? Zusammenfügen kann man sie ja dann serverseitig.


----------

