j4nk3y: Update einer Chatfunktion

Beitrag lesen

Servus zusammen,

So ich habe mich jetzt fürs erste entschieden kein Websocket zu verwenden, dass kann ich später immernoch ändern.

Da ich aber die Javascript Funktionen in ähnlicher Form auch an anderer Stelle verwenden kann, würde ich ersteinmal die Funktionalität kurz an dem Chat-beispiel erarbeiten.

Die Frage ist, wie bekomme ich mehrere Variablen aus Javascript zu php.

Kurz nochmal das Formular wo das <select> (wo die Nachricht später gespeichert werden sollen) und die Checkboxen (woher die Nachrichten kommen) noch auskommentiert sind.

<section>
				<!--<form>
					<input type="checkbox" name="world" class="checkbox_chat" id="chat_world_list" value="world" /><label for="world">World</label>
					<input type="checkbox" name="language" class="checkbox_chat" id="chat_language_list" value="<?php echo $_SESSION['language'];?>" /><label for="language">Language</label>
					<?php if($page == "lobby"){echo '<input type="checkbox" name="alliance" class="checkbox_chat" id="chat_alliance_list" value="alliance" /><label for="alliance">Alliance</label>';} ?>

				</form>-->
				<div id="chatbox"></div>
				<!--<form>
						<select name="chat_destination" id="chat_destination">
							<option>World Chat</option>
							<option>Alliance</option>
							<option>Language 2</option>
						</select>
				-->
<input type="text" name="chat" id="chat_text" size="23" onkeydown = "if (event.keyCode == 13) {document.getElementById('chatbutton').click()}"/>
					<button class="button" id="chatbutton" onclick="post_chat();" >Send</button>
				</form>
				
				<script>
				list_chat();
				</script>
			</section>

Die Chat_post Funktion, die die Variable chat_destination aus dem <select> aufnehmen soll und an php weiter geben soll.

function post_chat()
{
	var hr = new XMLHttpRequest();
	
	var url = "../functions/php/chat_insert.php";
	var chat = document.getElementById("chat_text").value;
	var chat_destination = document.getElementById("chat_destination").value;
	
	var message = "chat=" + chat;
	var message_destination = "chat_destination=" + chat_destination;
	
	var post = new Array([message][textdestination]);    //*1
	
	hr.open("POST", url, true);
	
	hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	hr.send(post);    //*1.1
	
	document.getElementById("chat_text").value = ""; 
	
}

Hier habe ich schon ein wenig probiert, führt aber noch nicht wirklich zum Ergebnis da ich nicht genau weiss wie ich das js Array in php aufnehme. *1 und *1.1 funktioniert das so?

Dazu kurz nochmal die chat_insert.php:

session_start();
require_once('db_connect_function.php');

if(isset($_POST['chat']) && !empty($_POST['chat']))
{
	$writer = $_SESSION['user_name'];
	$chat = $_POST['chat'];                      //*2
	$destination = $_POST['textdestination'];    //*2.1
	
	$insert_message = sprintf(
	'INSERT INTO chat ('
    . 'message_writer, message, message_date'
    . ') VALUES ('
    . '\'%1$s\', \'%2$s\', \'%3$s\''
    . ')',
    $_SESSION['user_name'],
    $_POST['chat'],
    time());
	if($db -> query($insert_message) === TRUE)
	{
		$db -> commit();
	}
	else
	{
		//error_log! $create_db_connect->error.
	}
	
	
	exit();
}
?>

Wie spreche ich bei *2 und *2.1 das Array-Element aus js an?

Oder geht das vllt ganz easy etwa in der Form:

$post = json_encode($_POST['post']);                      //*2

Soweit das erste, wenn das klappt, dann bin ich schonmal ein ganzes Stück weiter. Danke und noch einen schönen Sonntag.

Gruß Jo

0 151

Update einer Chatfunktion

j4nk3y
  • html
  • javascript
  • php
  1. 2
    Felix Riesterer
    • datenbank
    • php
    • sicherheit
    1. 0
      j4nk3y
      1. 0
        Gunnar Bittersmann
    2. 0
      Gunnar Bittersmann
      1. 0
        Matthias Apsel
        1. 0
          Gunnar Bittersmann
      2. 0
        j4nk3y
        1. 0
          Gunnar Bittersmann
          1. 0
            j4nk3y
      3. 0
        Felix Riesterer
        1. 0
          j4nk3y
          • zur info
          1. 1
            Felix Riesterer
            • php
            • programmiertechnik
            • zur info
            1. 0
              j4nk3y
        2. 0
          Gunnar Bittersmann
    3. 0
      j4nk3y
      1. 0
        Felix Riesterer
        • php
        • programmiertechnik
        • sicherheit
        1. 0
          j4nk3y
          1. 0
            Der Martin
            1. 0
              j4nk3y
              1. 0
                Der Martin
                1. 0
                  j4nk3y
          2. 0
            Felix Riesterer
            1. 0
              j4nk3y
              1. 0
                Der Martin
                1. 0
                  j4nk3y
              2. 1
                dedlfix
                1. 0
                  Gunnar Bittersmann
                  • typografie
                2. 0
                  j4nk3y
                  1. 0
                    dedlfix
                    1. 0
                      j4nk3y
                      1. 0
                        dedlfix
                        1. 0
                          j4nk3y
                          1. 0
                            dedlfix
                            1. 0
                              j4nk3y
                              1. 0
                                Der Martin
                                1. 0
                                  j4nk3y
                                  1. 0
                                    Der Martin
                              2. 1
                                dedlfix
                                1. 0
                                  Der Martin
                              3. 0
                                Gunnar Bittersmann
                                • datenbank
                                • programmiertechnik
                                1. 0
                                  j4nk3y
        2. 0
          Der Martin
        3. 0
          Gunnar Bittersmann
          • internationalisierung
          • php
          1. 0
            Felix Riesterer
            1. 0
              Tabellenkalk
              • zitat
              • zu diesem forum
              1. 1
                Matthias Apsel
    4. 0
      1unitedpower
      1. 1
        dedlfix
        1. 1
          1unitedpower
          1. 0
            Christian Kruse
          2. 0
            dedlfix
            1. 0
              1unitedpower
              1. 0
                dedlfix
                1. 0
                  Christian Kruse
                  1. 0
                    dedlfix
                  2. 0
                    1unitedpower
                    1. 0
                      Christian Kruse
                      1. 0
                        1unitedpower
                    2. 0
                      dedlfix
                      1. 0
                        1unitedpower
                        1. 0
                          dedlfix
  2. 0
    j4nk3y
    1. 0
      Gunnar Bittersmann
      • html
      1. 0
        j4nk3y
        1. 0
          Gunnar Bittersmann
          1. 0
            j4nk3y
            1. 0
              Matthias Apsel
              1. 0
                j4nk3y
  3. 0
    j4nk3y
  4. 0
    pl
    1. 0
      j4nk3y
      1. 0
        dedlfix
        1. 0
          j4nk3y
          1. 0
            dedlfix
            1. 0
              j4nk3y
              1. 0
                pl
                1. 0
                  j4nk3y
                  1. 0
                    pl
                    1. 0
                      dedlfix
                      1. -2
                        pl
                        1. 0
                          Matthias Apsel
                  2. 0
                    pl
              2. 0
                dedlfix
                1. 0
                  j4nk3y
                  1. 0
                    dedlfix
            2. 0
              j4nk3y
              1. 0
                dedlfix
      2. 0
        pl
  5. 0
    j4nk3y
    1. 0
      dedlfix
    2. 0
      j4nk3y
      1. 0
        j4nk3y
        1. 0
          pl
        2. 0
          dedlfix
          1. 0
            j4nk3y
            1. 0
              dedlfix
              1. 0
                j4nk3y
          2. 0
            j4nk3y
            1. 0
              j4nk3y
  6. 0
    j4nk3y
    1. 0
      Der Martin
      1. 0
        j4nk3y
        1. 0
          dedlfix
          1. 0
            j4nk3y
            1. 0
              Der Martin
              1. 0
                j4nk3y
        2. 0
          Der Martin
          1. 0
            j4nk3y
            1. 1
              Felix Riesterer
              1. 0
                j4nk3y
                1. 0
                  Matthias Apsel
                  1. 0
                    j4nk3y
                    • menschelei
                2. 0
                  Felix Riesterer
                  • php
                  • programmiertechnik
                  • sql
                  1. 0
                    j4nk3y
                    1. 0
                      Der Martin
                      1. 0
                        j4nk3y
                        1. 0
                          Der Martin
                          1. 0
                            j4nk3y
                            • menschelei
                    2. 0
                      Felix Riesterer
                      1. 0
                        pl
                      2. 0
                        j4nk3y
                        1. 2
                          dedlfix
                          1. 0
                            j4nk3y
                            1. 0
                              dedlfix
                              1. 0
                                Christian Kruse
                                1. 1
                                  dedlfix
                  2. 0
                    j4nk3y
                  3. 0
                    j4nk3y
                    1. 0
                      Felix Riesterer
                      1. 0
                        dedlfix
                        1. 0
                          j4nk3y
                          1. 0
                            pl
                            1. 0
                              j4nk3y
                          2. 0
                            dedlfix
                      2. 0
                        j4nk3y
                        1. 0
                          Der Martin
                        2. 0
                          Felix Riesterer
                          1. 0
                            Der Martin
                            1. 0
                              dedlfix
                          2. 0
                            j4nk3y
                            1. 1
                              Der Martin
                              1. 0
                                j4nk3y
    2. 0
      j4nk3y
      1. 0
        dedlfix
        1. 0
          j4nk3y
          1. 0
            Christian Kruse
            1. 0
              j4nk3y
              1. 0
                Christian Kruse
              2. 0
                Matthias Apsel
                • zu diesem forum
                1. 0
                  j4nk3y