Seite 1 von 2

select-Feld und ???

Verfasst: 13.08.2003 00:16
von NicoH
Hi

Ich habe folgende Probleme:

1.Ich habe einen Chat ... die User werden in einen select-Feld angezeigt... und dieser Teil wird aller 5 Sekunden aktualiesiert... und nun das Problem wenn ich einen User markiere mit der Maus ...wird diese nach der Aktualiesierung aufgehoben... gibt es da einen Lösung das es markiert bleibt mit Java Script oder so ... ?? das Feld heißt 'Userlist'

2.Ich möchte aus einen Text... der Eingabe Text im Chat bestimmte Sachen entnhmen:
Der Text:
z.B. /User Text....Text.....Text

Wie kann ich das Wort User herauslesen also ich kann festliegende Wörter heraus finden aber wie?? wenn man die Länge nicht weiß ... kann man es mit dem Leerzeichen nach User herausfinden??

Das wars ich hoffe ihr könnt mir helfen wie beim Farb Problem helfen.

Grüße NicoH.

Verfasst: 13.08.2003 11:24
von QCO
1. ich nehme mal an, dass du dieses select-feld in einem frame hast und die seite über javascript immer neulädst. du könntest jetzt statt neuladen das formular mit dem auswahlfeld absenden. dann kannst du in dem verarbeitenden script feststellen, was der user ausgewählt hat und es beim neugenerieren des codes vorselektieren

2. ich weiß nicht, in welcher sprache du deinen chat betreibst...
in php könnte das so ähnlich aussehen:

Code: Alles auswählen

if ( $befehl = strstr($text, '/User ')
{
 // die Eingabe des Users enthält '/User ', der text, der danach kam ist jetzt in $befehl
}

Verfasst: 13.08.2003 11:37
von NicoH
2. Das geht!


1.Also mit den markieren ist das so eine Sache ... wenn es nämlich markiert ist und ich das markierte aufrufen will kommt nichts.. es wird nicht übernommen.... ich lasse die Besucher in einer Schleife anzeigen...

Oben das verstehe ich nicht ganz zu 1.

Könnte man durch Java Script den User dazufügen und wieder löschen?

Man so ein Chat zu programmieren ist ziemlich schwierig...

Verfasst: 13.08.2003 12:25
von NicoH
Das wäre mein select-Feld:

Code: Alles auswählen

<? $server="Localhost";$datenbank="users";$benutzer="root";$kennwort="" ?>
<?
$zeit=date("U");
$nun=$zeit-100;

$verbindung=mysql_connect($server,$benutzer,$kennwort);mysql_select_db($datenbank,$verbindung);$sql="USE ".$datenbank;mysql_query($sql,$verbindung);

mysql_query("DELETE FROM online_talk WHERE zeit<'$nun'",$verbindung);

mysql_query("UPDATE online_talk SET zeit='$zeit' WHERE user='$username'",$verbindung);

$ergebnis=mysql_query("SELECT * FROM online_$chatroom WHERE user='$username'",$verbindung);
$my=mysql_fetch_object($ergebnis);
?>
<HTML>
<HEAD>
<TITLE>NicoH-Chat</TITLE>
<meta http-equiv="refresh" content="5; URL=online.php">
<style>
.userbox{
width:130px;
background-color: #8C17F9;
}
input, select {
width:130px;
background-color: #8C17F9;
font-family: Verdana, Tahoma, Helvetica, Arial;
font-weight: bold;
font-size: 10pt;
margin: 1px 0px 1px 0px;
border: #FFFFFF 1px solid;
}
</style>
</HEAD>
<BODY>

<table width="100%" align="center" border="0" cellpadding="5" cellspacing="7">
<tr><td>
<?
$ergebnis=mysql_query("SELECT * FROM online_$chatroom ORDER BY user",$verbindung);
$anzahl=mysql_affected_rows($verbindung);
?>
 <form action="" name="userlist" method="get" target="">
       <table bordercolor="#000000" border="1" class="Rahmen" width="100%" cellpadding="1" cellspacing="0">
        <tr><th bgcolor="#9000E0" style="font-size: 10pt">User im Chat:&nbsp;<? if ($anzahl==-1){echo "0";}else{echo $anzahl;}?></th></tr>
        <tr><td bgcolor=""><select class="userbox" name="userlist" size="10" scrolling="auto">
<?
while ($row=mysql_fetch_object($ergebnis))
{
$server = "localhost";
$db_user = "root";
$db_pass = "";
$database = "users";
mysql_connect($server, $db_user, $db_pass) or die ("CONNECT ERROR");
$sql_row=mysql_db_query($database, "SELECT * FROM users WHERE nickname='$row->user'") or die("SELECT ERROR");
$sql_row= @mysql_fetch_array ($sql_row);
mysql_connect($server, $db_user, $db_pass) or die ("CONNECT ERROR");
$sql_row3=mysql_db_query($database, "SELECT * FROM online_talk WHERE user='$row->user'") or die("SELECT ERROR");
$sql_row3= @mysql_fetch_array ($sql_row3);
if ($sql_row["user_away"]=="yes"){
$hv="(away)";
echo "<option value=\"".$row->user."\" style=\"color: #C0C0C0\">".$row->user."&nbsp;".$hv."\n";
}else{
$server = "localhost";
$db_user = "root";
$db_pass = "";
$database = "h87nico_de_db";
mysql_connect($server, $db_user, $db_pass) or die ("CONNECT ERROR");
$sql_row2=mysql_db_query($database, "SELECT * FROM user WHERE nic='$row->user'") or die("SELECT ERROR");
$sql_row2= @mysql_fetch_array ($sql_row2);
if ($sql_row2["recht"]==1){
  if ($sql_row3["status"]=="k"){
     echo "<option value=\"".$row->user."\" style=\"color: #FF0000\">".$row->user."&nbsp;(gekickt)\n";
  }elseif ($sql_row3["status"]=="g"){
     echo "<option value=\"".$row->user."\" style=\"color: #C0C0C0\">".$row->user."&nbsp;(geknebelt)\n";
  }else{
     echo "<option value=\"".$row->user."\" style=\"color: #00FFFF\">".$row->user."\n";
  }
}elseif($sql_row2["recht"]==2){
  if ($sql_row3["status"]=="k"){
     echo "<option value=\"".$row->user."\" style=\"color: #FF0000\">".$row->user."&nbsp;(gekickt)\n";
  }elseif ($sql_row3["status"]=="g"){
     echo "<option value=\"".$row->user."\" style=\"color: #C0C0C0\">".$row->user."&nbsp;(geknebelt)\n";
  }else{
     echo "<option value=\"".$row->user."\" style=\"color: #00FF00\">".$row->user."\n";
  }
}else{
  if ($sql_row3["status"]=="k"){
     echo "<option value=\"".$row->user."\" style=\"color: #FF0000\">".$row->user."&nbsp;(gekickt)\n";
  }elseif ($sql_row3["status"]=="g"){
     echo "<option value=\"".$row->user."\" style=\"color: #C0C0C0\">".$row->user."&nbsp;(geknebelt)\n";
  }else{
     echo "<option value=\"".$row->user."\" style=\"color: #000000\">".$row->user."\n";
  }
}
}
}
$server2 = "localhost";
$db_user2 = "root";
$db_pass2 = "";
$database2 = "h87nico_de_db";
mysql_connect($server2, $db_user2, $db_pass2) or die ("CONNECT ERROR");
$sql_row3=mysql_db_query($database2, "SELECT * FROM user WHERE nic='$username'") or die("SELECT ERROR");
$sql_row3= @mysql_fetch_array ($sql_row3);
?>
        </select></td></tr>
       </table>

       <br>

       <table border="1"  bordercolor="#000000" class="Rahmen" width="100%" cellpadding="1" cellspacing="0">
       <tr><th bgcolor="#9000E0">Befehle:</th></tr>
       <tr><td><input type="button" name="fluester" value="Flüstern" onclick="whisper()" ></td></tr>
<?
$recht=$sql_row3["recht"];
if ($recht=="2")
{
       echo "<tr><td><input type=\"button\" name=\"kick\" value=\"Kicken\" onclick=\"javascript:window.parent.document.frames('eingabe').document.forms['chat'].elements['feld1'].focus();window.parent.document.frames('eingabe').document.forms['chat'].elements['feld1'].value=window.parent.document.frames('eingabe').document.forms['chat'].elements['feld1'].value+'/kick $userlist'\"></td></tr>";
       echo "<tr><td><input type=\"button\" name=\"knebeln\" value=\"Knebeln\" onclick=\"javascript:window.parent.document.frames('eingabe').document.forms['chat'].elements['feld1'].focus();window.parent.document.frames('eingabe').document.forms['chat'].elements['feld1'].value=window.parent.document.frames('eingabe').document.forms['chat'].elements['feld1'].value+'/knebeln '\"></td></tr>";
       echo "<tr><td><input type=\"button\" name=\"privat\" value=\"Privat\" onclick=\"javascript:window.parent.document.frames('eingabe').document.forms['chat'].elements['feld1'].focus();window.parent.document.frames('eingabe').document.forms['chat'].elements['feld1'].value=window.parent.document.frames('eingabe').document.forms['chat'].elements['feld1'].value+'/priv??? '\"></td></tr>";
       echo "<tr><td><input type=\"button\" name=\"ip\" value=\"IP\" onclick=\"javascript:window.parent.document.frames('eingabe').document.forms['chat'].elements['feld1'].focus();window.parent.document.frames('eingabe').document.forms['chat'].elements['feld1'].value=window.parent.document.frames('eingabe').document.forms['chat'].elements['feld1'].value+'/ip user '\"></td></tr>";
}
if ($recht=="1")
{
       echo "<tr><td><input type=\"button\" name=\"kick\" value=\"Kicken\" onclick=\"javascript:window.parent.document.frames('eingabe').document.forms['chat'].elements['feld1'].focus();window.parent.document.frames('eingabe').document.forms['chat'].elements['feld1'].value=window.parent.document.frames('eingabe').document.forms['chat'].elements['feld1'].value+'/kick $userlist'\"></td></tr>";
       echo "<tr><td><input type=\"button\" name=\"knebeln\" value=\"Knebeln\" onclick=\"javascript:window.parent.document.frames('eingabe').document.forms['chat'].elements['feld1'].focus();window.parent.document.frames('eingabe').document.forms['chat'].elements['feld1'].value=window.parent.document.frames('eingabe').document.forms['chat'].elements['feld1'].value+'/knebeln '\"></td></tr>";
       echo "<tr><td><input type=\"button\" name=\"privat\" value=\"Privat\" onclick=\"javascript:window.parent.document.frames('eingabe').document.forms['chat'].elements['feld1'].focus();window.parent.document.frames('eingabe').document.forms['chat'].elements['feld1'].value=window.parent.document.frames('eingabe').document.forms['chat'].elements['feld1'].value+'/priv??? '\"></td></tr>";
       echo "<tr><td><input type=\"button\" name=\"ip\" value=\"IP\" onclick=\"javascript:window.parent.document.frames('eingabe').document.forms['chat'].elements['feld1'].focus();window.parent.document.frames('eingabe').document.forms['chat'].elements['feld1'].value=window.parent.document.frames('eingabe').document.forms['chat'].elements['feld1'].value+'/ip user '\"></td></tr>";
       echo "<tr><td><input type=\"button\" name=\"setcol\" value=\"Setcol\" onclick=\"javascript:window.parent.document.frames('eingabe').document.forms['chat'].elements['feld1'].focus();window.parent.document.frames('eingabe').document.forms['chat'].elements['feld1'].value=window.parent.document.frames('eingabe').document.forms['chat'].elements['feld1'].value+'/setcol '\"></td></tr>";
}
?>
       </table>
      </form>

</td></tr></table>
<?
mysql_free_result($ergebnis);
mysql_close($verbindung);
?>
<script language="JavaScript">
<!--
window.setTimeout("window.location='online.php'",10000);
//-->
</script>
</BODY>
</HTML>

Verfasst: 13.08.2003 13:11
von QCO
also jetzt so auf die schnelle durchsteig ich dein script nicht.

was ich meinte ist folgendes:
1) du machst bis jetzt

Code: Alles auswählen

<meta http-equiv="refresh" content="5; URL=online.php">
und

Code: Alles auswählen

<script language="JavaScript"> 
<!-- 
window.setTimeout("window.location='online.php'",10000); 
//--> 
</script>
den meta-refresh machst du weg, setzt dein select-feld userlist in ein formular (name hier post) und statt window.location='online.php machst du document.post.submit()

variante 2)
du änderst das window.setTimeout("window.location='online.php'",10000); in window.setTimeout("window.location='online.php?userlist=" + document.userlist.value + "'",10000);

in beiden fällen kannst du jetzt in deinem script anhand der variable $_GET['userlist'] oder $_POST['userlist'] sehen, welchen user dein benutzer ausgewählt hatte.

dann machst du am anfang deines scriptes

Code: Alles auswählen

if ( isset($_GET['userlist']) || isset($_POST['userlist']) )
{
 $selected_user = ( isset($_GET['userlist']) ) ? $_GET['userlist'] : $_POST['userlist'];
}
else
{
 $selected_user = '';
}
und in deiner schleife, in der du alle user listest

Code: Alles auswählen

 $selected = ( $row->user == $selected_user) ? ' selected="selected"' : '';
und änderst die ganzen zeilen
echo "<option value=\"".$row->user."\" $selected style=\"color: #FF0000\">".$row->user."

Verfasst: 13.08.2003 21:19
von NicoH
...ich hoffe du hast es richtig verstanden...

Ich möcht das ich einen User auswähloen kann und dann auf einen Button drücke und in der eingabe zeile dann z.B steht


/kick User .... und weil die markierung immer aufgehoben wurde wurde der Name:User nicht Übertragen nur /kick

...

Verfasst: 13.08.2003 21:33
von NicoH
...habe getestet...markierung wird immer noch aufgehoben :(

Verfasst: 14.08.2003 12:23
von NicoH
QCO hat geschrieben:also jetzt so auf die schnelle durchsteig ich dein script nicht.

was ich meinte ist folgendes:
1) du machst bis jetzt

Code: Alles auswählen

<meta http-equiv="refresh" content="5; URL=online.php">
und

Code: Alles auswählen

<script language="JavaScript"> 
<!-- 
window.setTimeout("window.location='online.php'",10000); 
//--> 
</script>
den meta-refresh machst du weg, setzt dein select-feld userlist in ein formular (name hier post) und statt window.location='online.php machst du document.post.submit()

variante 2)
du änderst das window.setTimeout("window.location='online.php'",10000); in window.setTimeout("window.location='online.php?userlist=" + document.userlist.value + "'",10000);

in beiden fällen kannst du jetzt in deinem script anhand der variable $_GET['userlist'] oder $_POST['userlist'] sehen, welchen user dein benutzer ausgewählt hatte.

dann machst du am anfang deines scriptes

Code: Alles auswählen

if ( isset($_GET['userlist']) || isset($_POST['userlist']) )
{
 $selected_user = ( isset($_GET['userlist']) ) ? $_GET['userlist'] : $_POST['userlist'];
}
else
{
 $selected_user = '';
}
und in deiner schleife, in der du alle user listest

Code: Alles auswählen

 $selected = ( $row->user == $selected_user) ? ' selected="selected"' : '';
und änderst die ganzen zeilen
echo "<option value="".$row->user."" $selected style="color: #FF0000">".$row->user."
Also das mit $_GET['userlist'] geht nicht aber wenn mann nur $userlist eingibt dann macht er das...


Nun fehlt mir nur noch eins:

Ich möcht wenn ich folgendes schreibe:

/user(unterschiedliche Länge) Texttedttexttexttext

das erste Wort also User(unterschiedliche Länge) herausfinden...
herauslesen...
geht das mit PHP

Verfasst: 14.08.2003 14:47
von Pyramide

Code: Alles auswählen

$a = substr($str, 1, strpos($str, ' ')-1)

Code: Alles auswählen

preg_match('#/([^ ]+)#', $str, $m);
$a = $m[1];

Verfasst: 14.08.2003 15:09
von NicoH
was macht was?

wie muss man den text einfügen also $text<-- das soll bearbeitet werden