javascript code geeft niets terug

Status
Niet open voor verdere reacties.

5blabla5

Gebruiker
Lid geworden
27 apr 2009
Berichten
485
Goeieavond,

Ik ben me aan het verdiepen in javascript, en heb met een aantal snippets van sites, en wat kennis van php een javascript scriptje in elkaar gezet. Het is een pagina waarop je een div container ziet, waarin alles wat je intypt in de balk daaronder verschijnt. De PHP parser geeft hier zijn antwoord op, en laat dat verschijnen onder wat je zelf hebt ingetikt. Bijna alles wordt via PHP geregeld, vooral het gedeelte waarbij de inhoud van de div container moet worden bepaald.

Helaas werkt er iets niet, en ik zou eerlijk gezegd niet weten wat. Als ik op de send knop druk, gebeurd er niets, en als ik op de enter toets druk, dan veranderd de url in de adresbalk in 'talkmachine/?input=tekst' (tekst is wat je hebt ingetypt). Het PHP script ontvangt ook niets.

Ik zal zo snel mogelijk een voorbeeldje online zetten, maar tot die tijd heb ik hier alvast de source code van het client gedeelte (het php gedeelte lijkt me niet nodig, aangezien dat los staat van mijn probleem):

index.php
PHP:
<?php

session_start();
ob_start();

?>

<html>
	<head>
		<script language="JavaScript" src="js/functions.js"></script>
		<style>
			#container {
				width: 500px;
				height: 300px;
				background-color: #FFFFFF;
				margin: 0 auto 0 auto;
				border: 2px solid black;
				padding: 3px;
			}
	
			#talkwindow {
				width: 500px;
				height: 270px;
				background-color: #FFFFFF;
			}
	
			#action {
				width: 444px;
			}
		</style>
	</head>
	<body>
		<div id="container">
			<div id="talkwindow"></div>
			<form action="" method="GET">
				<input id="action" type="text" name="input" />
				<input type="button" name="button" value="Send" onClick="new_request('talkwindow', this.form)" />
			</form>
		</div>
	</body>
</html>

js/functions.js:
HTML:
// Equivalent to PHP function file_get_contents
// See www.php.net/file_get_contents
function file_get_contents(url) {

	if(window.XMLHttpRequest) {
		request         = new XMLHttpRequest();
	} elseif(window.ActiveXObject) {
		request         = new ActiveXObject('Microsoft.XMLHTTP');
	}
	
	request.open('GET', url, false);
	request.send(null);
	
	return request.responseText;
}

// Changes content of a html element
function new_content(id, content) {

	var container       = document.getElementById(id);
	container.innerHTML = content;
	
}

// Send new request to PHP script
function new_request(id, form) {

	var input           = form.input.value;
	var output          = file_get_contents('/talkmachine/php/parser.php?input='.input);
	
	new_content(id, output);
	
}

Verder is de code nog in de ontwikkelingsfase, dus reken me niet af op het lelijke script ^^

Iemand die weet wat er mis is?


EDIT:
Heb effe een webhosting gevonden: http://5blabla5.zxq.net/talkmachine/
 
Laatst bewerkt:
Okee, ik heb het hele internet afgezocht, en heb uiteindelijk te oplossing gevonden. Er bleken een paar syntaxfouten in te zitten.

Echter zit ik nu nog met één probleem: het formulier.
HTML:
			<form name="talker">
				<input id="action" type="text" name="input" />
				<input type="button" name="button" value="Send" onClick="new_request('talkwindow', this.form)" />
			</form>
Als ik op de button klik, doet 'ie precies wat ik wil. Maar als je iets invult in de balk en je drukt op enter, dan komt er in de adresbalk "?input=tekst" achter, en verder doet hij niets.

Hoe kan ik er voor zorgen dat hij de enter gelijk meepakt?
 
Okee, ik heb het hele internet afgezocht, en heb uiteindelijk te oplossing gevonden. Er bleken een paar syntaxfouten in te zitten.

Echter zit ik nu nog met één probleem: het formulier.
HTML:
			<form name="talker" >
				<input id="action" type="text" name="input" />
				<input type="button" name="button" value="Send" onClick="new_request('talkwindow', this.form)" />
			</form>
Als ik op de button klik, doet 'ie precies wat ik wil. Maar als je iets invult in de balk en je drukt op enter, dan komt er in de adresbalk "?input=tekst" achter, en verder doet hij niets.

Hoe kan ik er voor zorgen dat hij de enter gelijk meepakt?

ik denk dat dit het wel zal doen;

Code:
<form name="talker" id="talker">
<input id="action" type="text" name="input" onkeypress="keypress(this,event)"/>

Code:
function keypress (el,evt) {
if(window.event) // IE
{
var keynum = evt.keyCode
}
else if(evt.which) // Netscape/Firefox/Opera
{
var keynum = evt.which
}
if (keynum==13) {
new_request('talkwindow', document.getElementById('talker'))
}
}
 
Ik ga het morgen proberen! Bedankt!

EDIT:
De code werkt gedeeltelijk, maar het probleem is dat ie de hele pagina opnieuw laadt... Ik ga nog wel even zoeken, maar als iemand een manier heeft om dit te vermijden, dan hoor ik het graag ^^

EDIT 2:
Ik heb alweer de oplossing gevonden:
in de form tag een onSubmit ding zetten, met daarin "return false;" :)
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan