• 0

[JAVASCRIPT] Chat will not send % sign. Help.


Question

//Add a message to the chat server.
			function sendChatText() {
				if(document.getElementById('txt_message').value == '') {
					alert("You have not entered a message");
					return;
				}
				if (sendReq.readyState == 4 || sendReq.readyState == 0) {
					sendReq.open("POSTggetChat.php?chat=1&last=' + new Date().getTime(), true);
					sendReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=utf-8');
					sendReq.onreadystatechange = handleSendChat; 
					var param = 'message=' + document.getElementById('txt_message').value;
					sendReq.send(param);
					document.getElementById('txt_message').value = '';
				}							
			}

Its posted from form, all works great but I will not allow sending % chartactor, I'm pretty sure its Javascript problem.

4 answers to this question

Recommended Posts

  • 0

This will hopefully help

//I added this so you can't send a message with only a space in it
	var trimmed = document.getElementById('txt_message').value.replace(/^\s+|\s+$/g, '');
	if(document.getElementById('txt_message').value.replace(/^\s+|\s+$/g, '') == '' || trimmed == '') {
	alert("You have not entered a message");
	return;
	}
			//This is to replace symbols that things up. Had to replace & and +
	var str=document.getElementById('txt_message').value.replace(/^\s+|\s+$/g, '')
	var replaced = (str.replace(/&/gi, "%26"))
	var replacedd = (replaced.replace(/\+/gi, "%2b"))
	var replaceddd = (replacedd.replace(/\%/gi, "%25"))
	var param = 'message=' + replaceddd;

Hope that helps. Using code based on the script it looks like your using, but mine seems to handle % right...weird lol

  • 0

Sorry treid either i'm not doing right or it is to do with responce to.

whole script

<script language="JavaScript" type="text/javascript">
			var sendReq = getXmlHttpRequestObject();
			var receiveReq = getXmlHttpRequestObject();
			var lastMessage = 0;
			var mTimer;
			//Function for initializating the page.
			function startChat() {
				//Set the focus to the Message Box.
				document.getElementById('txt_message').focus();
				//Start Recieving Messages.
				getChatText();
			}		
			//Gets the browser specific XmlHttpRequest Object
			function getXmlHttpRequestObject() {
				if (window.XMLHttpRequest) {
					return new XMLHttpRequest();
				} else if(window.ActiveXObject) {
					return new ActiveXObject("Microsoft.XMLHTTP");
				} else {
					document.getElementById('p_status').innerHTML = 'Status: Cound not create XmlHttpRequest Object.  Consider upgrading your browser.';
				}
			}

			//Gets the current messages from the server
			function getChatText() {
				if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
					receiveReq.open("GETggetChat.php?chat=1&last=' + new Date().getTime(), true);
					receiveReq.onreadystatechange = handleReceiveChat; 
					receiveReq.send(null);
				}			
			}
			//Add a message to the chat server.
			function sendChatText() {
				if(document.getElementById('txt_message').value == '') {
					alert("You have not entered a message");
					return;
				}
				if (sendReq.readyState == 4 || sendReq.readyState == 0) {
					sendReq.open("POSTggetChat.php?chat=1&last=' + new Date().getTime(), true);
					sendReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=utf-8');
					sendReq.onreadystatechange = handleSendChat; 
					var param = 'message=' + document.getElementById('txt_message').value;
					sendReq.send(param);
					document.getElementById('txt_message').value = '';
				}							
			}
			//When our message has been sent, update our page.
			function handleSendChat() {
				//Clear out the existing timer so we don't have 
				//multiple timer instances running.
				clearInterval(mTimer);
				getChatText();
			}
			//Function for handling the return of chat text
			function handleReceiveChat() {
				if (receiveReq.readyState == 4) {


			var chat_div = document.getElementById('divline_chat');
			chat_div.innerHTML = receiveReq.responseText;
					mTimer = setTimeout('getChatText();',10000); //Refresh our chat in 2 seconds
				}
			}
			//This functions handles when the user presses enter.  Instead of submitting the form, we
			//send a new message to the server and return false.
			function blockSubmit() {
				sendChatText();
				return false;
			}
			//This cleans out the database so we can start a new chat session.
			function resetChat() {
				if (sendReq.readyState == 4 || sendReq.readyState == 0) {
					sendReq.open("POSTggetChat.php?chat=1&last=' + lastMessage, true);
					sendReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
					sendReq.onreadystatechange = handleResetChat; 
					var param = 'action=reset';
					sendReq.send(param);
					document.getElementById('txt_message').value = '';
				}							
			}
			//This function handles the response after the page has been refreshed.
			function handleResetChat() {
				document.getElementById('div_chat').innerHTML = '';
				getChatText();
			}	
		</script>

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.