Variable in Textfeldern aufteilen

kavanin

Mitglied
Hallo,

habe es jetzt schon geschaft etwas zu übergeben, aber will jedes einzelne Variable (id, bedreff, ..) in ein eigenes Textfeld bringen, aber wie kann ich es aufteilen oder mehere übergeben Und wie kann ich anschließend das ganze wieder in der DB speichern

Danke im voraus

Lg Kavanin

PHP:
</style>
<script language="JavaScript">

function PrintValues(){

  var myString = document.mainform.file.value
  var myStringLength = myString.length
  var Comma = myString.lastIndexOf(',')
  var SufNumChars = Comma + 1

  document.mainform.result.value=('');

  for(i=0; i<Comma; i++) 
  document.mainform.result.value+=(myString.charAt(i));

  document.mainform.result.value+=(' ');

  for(i=SufNumChars; i<myStringLength; i++) 
  document.mainform.result.value+=(myString.charAt(i));

}

</script>
</head>
<body style="align: center; vertical-align: middle;">
<table align='center'><tr><td align='align'><a class='normal' align='center' style='vertical-align: center'>
<?PHP
include ("connect.php");
?>
<br>
 <table border="1" calspacing="2" calpadding="2">
    <tr>
        <td valign="middle" align="right" class="normal2" size="200" nowrap>
            Datensatz auswählen:&nbsp;
        </td>
    </tr>
    <tr>
        <td>
        <form name="mainform">
            <? $abfrage = mysql_query("SELECT * FROM news order by id");			                                                                        
                echo '<select name="file" size="1" onchange="PrintValues();"  target="_parent._top"
        onmouseclick="this.focus()">>';
                while($row=mysql_fetch_object($abfrage))			
                {				
                    echo "<option name='".$row->id."' value='".$row->id." ".$row->monat." ".$row->jahr." ".$row->bedreff."'>".$row->monat." ".$row->jahr." ".$row->bedreff."</option>";
                }
                echo "</select>";
                ?>
                
                <input type="text" name="result" size="75">
        </form>
        </td>
    </tr>
   </table>
</body>
</html>
 
Moin Kavanin,

das sind 3 Wünsche auf einmal, welche nicht ganz eindeutig zu Verstehen sind.

Lass es uns der Reihe nach angehen:
  • Welche Variable
  • Welche Textfelder
  • mehrere...wie soll das aussehen/ablaufen(wie wird es benötigt)
 
also, ich möchte die Variablen (id, bedreff, monat, jahr, pfad) in jeweil einzelne Textfelder anzeigen lassen, nachdem ich den jeweiligen Datensatz mit der Combox ausgewählt habe. Und dann will ich die Ihnalte der einzelen Textfelder wieder in die DB speichern mittles Button!
 
Da stellt sich erstmal die Frage, ob es einen verlässlichen Trenner gibt, also ein Zeichen, der dort bei den <option>'en die einzelnen "Variablen" voneineander trennt, jedoch nicht in den "Variablen" selbst vorkommt.

Momentan scheint es ein Leerzeichen zu sein...bist du sicher, dass $bedreff keine Leerzeichen enthalten kann?
 
So könnte es bspw. gemacht werden:
Code:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; 
                                charset=ISO-8859-1"   />
<meta name="author"             content="doktormolle" />
<meta name="date"               content="2009-08-05" />
<title>Test</title>
<script type="text/javascript">
<!--
function fx(l,d,n)
{
  var f=l.form;
  var v=l.value.split(new RegExp(d));
  if(v.length==n.length)
  {
    for(i=0;i<v.length;++i)
    {
      f.elements[n[i]].value=v[i];
    }
  }
}
//-->
</script>
</head>
<body>
<form>
  <select onchange="fx(this,'_',['id','monat','jahr','betreff','pfad'])">
    <option>Auswahl:
    <option value="1_10_2008_betreff1_irgendein/pfad">1 10 2008 betreff1 irgendein/pfad
    <option value="2_12_2009_betreff2_http://tutorials.de">2 12 2009 betreff2 http://tutorials.de
    <option value="3_11_2007_betreff3_nocheinpfad.php">3 11 2007 betreff3 nocheinpfad.php
  </select> <br />
  ID<input name="id"><br />
  monat<input name="monat"><br />
  jahr<input name="jahr"><br />
  betreff<input name="betreff"><br />
  pfad<input name="pfad"><br />
  <input type="submit">
</form>
</body>
</html>

Die einzelnen "Variablen" werden im value der <option>'s notiert, jeweils getrennt durch das Zeichen, was sonst nicht vorkommt(hier _)

Aufruf:
Code:
fx(this,'_',['id','monat','jahr','betreff','pfad'])"
  1. this->bleibt immer gleich
  2. '_'->das Trennzeichen
  3. ['id','monat','jahr','betreff','pfad'] ein Array mit den Namen der "Variablen"...in der Reihenfolge, in welcher sie im value der <option>'s stehen.
    Zu jedem Namen muss ein <input> existieren, welches den selben Namen trägt.

Die Funktion fx() splittet den value der ausgewählten <option> anhand des Trennzeichens, und trägt das Ergebnis in das dazugehörige Feld ein....das wars.
Eleganter wäre evtl., die "Variable" als JSON im value zu speichern, das würde das splitten ersparen.

Um die Daten wieder irgendwo in eine DB einzutragen, kannst du das Formular an ein PHP-Skript senden, welches dies tut.
 
wollte es jetzt anpassen und habe es in eine wihle-Schleife getan und jetzt dunktioniert nicht, aber ich komme nicht drauf, warum!!

PHP:
<script type="text/javascript">
<!--
function fx(l,d,n)
{
  var f=l.form;
  var v=l.value.split(new RegExp(d));
  if(v.length==n.length)
  {
    for(i=0;i<v.length;++i)
    {
      f.elements[n[i]].value=v[i];
    }
  }
}
//-->
</script>
</head>
<body>
<form>
    <? 
    include ("connect.php");
    $abfrage = mysql_query("SELECT * FROM news order by id");?>                                                                                    
                <select onchange="fx(this,'_',['id','monat','jahr','betreff'])">
                <?
                while($row=mysql_fetch_object($abfrage))            
                {                
                    echo '<option value="'.$row->monat.'_'.$row->jahr.'_'.$row->bedreff.'">'.$row->monat.' '.$row->jahr.' '.$row->bedreff.'</option>';
                }
                echo "</select>";
                ?>  
<br />
  ID<input name="id"><br />
  monat<input name="monat"><br />
  jahr<input name="jahr"><br />
  betreff<input name="betreff"><br />
  <input type="submit">
 

Neue Beiträge

Zurück