2016-07-11 7 views
0

Lange Zeit Leser, zum ersten Mal Fragesteller ... Ich werde auf den Punkt kommen.PHP mySQL textarea --- das ganze shibang

Ich übergebe Textarea-Daten an QUERY_STRING und brauche es, um mit mySQL gut zu spielen. Um genauer zu sein, brauche ich den Text, um die richtigen Zeilenumbrüche und Abstände zu zeigen, während auch alle Charaktere angezeigt werden (Ich schaue dich an, # und Freunde!). AUCH ich brauche es, um all den nervtötenden Zeichen und Zeichen zu entkommen.

Ich habe (fast hoffnungsvoll) alles versucht.Ich kann nicht scheinen, die Zutaten richtig zu machen, ich kann den Abstand und die Zeilenumbrüche arbeiten lassen aber nicht die # Zeichen. Ich kann die # Zeichen, aber nicht die Apostrophe.

ADD: Der Grund, warum ich diese Daten durch die QUERY Zeichenfolge übergeben und nicht, sagen wir, GET, ist, weil ich JavaScript (mit XMLHttpRequest)

Die Seite ist speziell so eingerichtet, dass sie eine Nachricht sendet, ohne die Seite zu aktualisieren (zB Facebook). Sie nimmt die Daten aus dem ID-Textfeld über DOM, übergibt es an eine separate PHP-Datei w hich behandelt die mySQL-Anfrage, aber in der Mischung verliere ich Informationen und es übersetzt nicht. Ich arbeite seit zwei Tagen daran und kann es nicht zum Jive bringen. Hilfe!

EDIT: Hier ist der Code. Einige dieser Code-Snippets befinden sich auf verschiedenen Seiten, arbeiten jedoch zusammen, um zu versuchen, eine Nachricht zu senden, ohne die Seite zu aktualisieren/aktualisieren.

<textarea spellcheck='false' id='composeText' maxlength='250'> 
</textarea> 
<input type='button' value='Send' style='float:right;' onclick='sendMsg(<?php echo '123654674, 159753';?>)' id='sendMsg'> 

parse_str($_SERVER['QUERY_STRING'],$g); 
if ($g) { 
    $msg_id = $g['msg_id']; 
    $msgFrom = $g['msgFrom']; 
    $message = addslashes($g['message']); 
    $message = nl2br($message); 
    $msgTo = $g['msgTo']; 
} 

echo "<input type='hidden' id='msgToId2' value='".$msgTo."'>"; 


addMsg($msg_id, $msgFrom, $msgTo, $message, $conn); 


function sendMsg(msg_id, msgFrom) { 
    msg_id = Math.floor((Math.random() * 1000000000) + 1); 
    msgFrom = '159753'; 

    msgTo = document.getElementById('msgToId').value; 
    if (msgTo == "") msgTo = document.getElementById('msgToId2').value; 
    message = document.getElementById('composeText').value; 
    message = message.replace(/\r?\n/g, '<br/>'); 
    message = encodeURIComponent(message); 

    getRequest(
      'sendMsg.php?msg_id=' + msg_id + '&msgFrom=' + msgFrom + '&msgTo=' + msgTo + '&message=' + message, // URL for the PHP file 
      sendMsgOutput, // handle successful request 
      sendMsgError // handle error 
    ); 
    return false; 
} 


function addMsg($msg_id, $msgfrom, $msgto, $message, $conn) { 

    $message = mysqli_real_escape_string($conn, $message); 

    $query = "INSERT INTO `messages` (`msg_id`, `msgfrom`, `msgto`, `message`, `timestamp`) VALUES ('$msg_id', '$msgfrom', '$msgto', '$message', DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p'))"; 
    $result = mysqli_query($conn, $query); 
} 
+0

Haben Sie darüber nachgedacht, [TinyMCE] (https://www.tinymce.com/) anzuschauen? – Script47

+0

Definitiv etwas, das ich in Erwägung ziehe, aber ich möchte etwas viel einfacher haben – ddaugherty3

+0

Es kann angepasst werden, um alle zusätzlichen Tools zu entfernen. Sie können es haben, um die normalen Formatierungsbits und -bobs nur zu haben. – Script47

Antwort

0

Wenn alle Stricke reißen, ich dachte, dass ich das hier verlassen würde, können Sie so etwas wie TinyMCE verwenden könnte, die ich verwendet habe, ist es ziemlich beeindruckend.

Nutzungs

Eine einfache Demo als pro es Website,

<!DOCTYPE html> 
<html> 
<head> 
    <script src="//cdn.tinymce.com/4/tinymce.min.js"></script> 
    <script>tinymce.init({ selector:'textarea' });</script> 
</head> 
<body> 
    <textarea>Easy! You should check out MoxieManager!</textarea> 
</body> 
</html> 

Überwältigt von all den zusätzlichen Bits und Stücke?

Nichts zu befürchten, wie Sie sie entfernen können und behalten, was Sie wünschen. Unten ist ein minimales Setup, das ich verwende, und es kann weiter reduziert werden.

tinymce.init({ 
    selector: '.tiny-mce', 
    toolbar: 'bold italic alignleft aligncenter alignright bullist numlist outdent indent undo redo styleselect', 
    statusbar: false, 
    menubar: false 
}); 

The documentation ist zu knapp, was ein Pluspunkt ist. Von der editors appearance bis content filtering hat es eine große Auswahl an Optionen, die Sie anpassen können.

Sie können die vollständige Funktionsliste here finden.

+0

Ich habe versucht Tinymce, es ist ziemlich cool, aber es löst nicht mein Problem. Schritt 1 - Benutzer klickt Taste msg Schritt 2 senden - Prozess wird durch JS gedrückt, der die TextArea- Daten mit DOM Schritt 3 wird - JS schiebt, dass die Daten durch einen Hintergrund php Seite mit XMLHttpRequest Schritt 4 - Background php Seite dauert diese Daten und sendet es an MySQL – ddaugherty3