[JS] stuk js in url (Opgelost)
Milannetjuhh - 20/08/2007 22:07 (laatste wijziging 21/08/2007 00:18)
Nieuw lid
Beste Sima's,
Ik wil een functie met een variable.
Dat lukt, maar in die variable wil ik een stuk JS.
zoals dit:
<script type="text/javascript">
function functie(variable){
alert("voorbeeld")
}
variable = 'text' + document.getElementById('id').value;
</script>
<input type="button" id="id" onclick="functie(variable)" value=" text">
<script type = "text/javascript" > function functie(variable){
alert("voorbeeld")
}
variable = 'text' + document.getElementById('id').value;
<input type = "button" id = "id" onclick = "functie(variable)" value = " text" >
De output zou moeten zijn:
text text
Dit werkt niet:(
als ik het deel "+ document..." weghaal dan lukt het wel met de output:
text
Iemand een oplossing?
16 antwoorden
Gesponsorde links
timmie_loots - 20/08/2007 22:13
PHP gevorderde
<script type="text/javascript">
function functie(variabele)
{
window.alert(variabele);
}
</script>
<input type="button" onclick="functie(this.value)" value=" text">
<script type="text/javascript">
function functie(variabele)
{
window.alert(variabele);
}
</script>
<input type="button" onclick="functie(this.value)" value=" text">
Milannetjuhh - 20/08/2007 22:15 (laatste wijziging 20/08/2007 23:01)
Nieuw lid
Ow, wel bedankt, maar ik gebruikte de value van die button als voorbeeld om het script overzichtelijk te houden ;)
srry, en als ik het van een ander input geval wil?
-edit-
ow, sorry typo,
maar zoals ik al zei, zonder dat js deel in die variable doet ie het wel,
ik heb die code ff snel in elkaar geflantst;)
BramBo - 21/08/2007 09:38 (laatste wijziging 21/08/2007 09:38)
JS gevorderde
function f(n) {
var El = document.getElementById(n);
alert(el);
}
function f( n) {
var El = document. getElementById( n) ;
alert( el) ;
}
aanroep: onclick="Javascript:f('IdVanHetElement');"
Thomas - 21/08/2007 12:20
Moderator
regel 5 van het codefragment in het oorspronkelijke bericht valt buiten de accolades van de functie... De waarde van 'variabele' wordt ook nergens aan toegekend (en gaat dus verloren).
Milannetjuhh - 21/08/2007 22:11
Nieuw lid
Sorry dat ik misschien onduidelijk was.
Ik zal het met een voorbeeld dat ik nu gebruik uitleggen...
ik heb ajax.js .
Die wil ik includen en dan in html gebruiken.
Die url in de ajax functie daar moet de inhoud van het input veld zitten, dus ik dacht dit:
<script type="text/javascript" src="ajax.js">
url = 'pagina.php?id=' + document.getElementById('id').value;
</script>
<input type="text" id="id">
<input type="button" onclick="ajax(url, 'id')" value="Submit">
<script type = "text/javascript" src = "ajax.js" > url = 'pagina.php?id=' + document.getElementById('id').value;
<input type = "text" id = "id" > <input type = "button" onclick = "ajax(url, 'id')" value = "Submit" >
BramBo - 22/08/2007 13:17 (laatste wijziging 22/08/2007 15:25)
JS gevorderde
Zoals je nu je code hebt wordt de URL opgebouwd voordat de DOM werkelijk is opgebouwd. Je kan de URL opbouwen via een eventhandler of makkelijker en beter nog in dit gevalt door te refereren naar het object het moment dat je de functie aanroept:
<head>
<script type="text/javascript" src="ajax.js"></script>
</head>
<body>
..........
<input type="text" id="id">
<input type="button" onclick="ajax('pagina.php?id="+document.getElementById('id').value+"', 'id')" value="Submit">
..........
</body>
< head>
< script type= "text/javascript" src= "ajax.js" ></ script>
</ head>
< body>
..........
< input type= "text" id= "id" >
< input type= "button" onclick= "ajax('pagina.php?id=" + document. getElementById( 'id' ) . value+ "', 'id')" value= "Submit" >
..........
</ body>
Wellicht wil je nog een value check doen op de input box (aangezien het user input is). Wanneer dit zo zou zijn zou ik een functie schrijven die een id + patroon door krijgt.
dus :
<head>
<script type='text/javascript'>
var prefix = 'pagina.php?id=';
function getVal(id, pattern) {
(eval('/'+pattern+'/').test(document.getElementById(id).value) === true) ? ajax(prefix+document.getElementById(id).value, id) : alert('geen geldige input voor veld '+id);
}
</script>
<head><body>
<a onclick="getVal('aa', '\\d{1,5}')">asdasd</a>
</body>
< head>
< script type= 'text/javascript' >
var prefix = 'pagina.php?id=' ;
function getVal( id, pattern) {
( eval ( '/' + pattern
+ '/' ) . test
( document
. getElementById
( id
) . value
) === true ) ? ajax
( prefix
+ document
. getElementById
( id
) . value
, id
) : alert
( 'geen geldige input voor veld ' + id
) ; }
</script>
< head>< body>
< a onclick= "getVal('aa', '\\d{1,5}')" > asdasd</ a>
</ body>
(1 tot 5 digits; let wel \\ == \ door de eval functie zijn de \'s weg gewerkt dus vandaar)
Milannetjuhh - 22/08/2007 15:17 (laatste wijziging 22/08/2007 15:35)
Nieuw lid
Ik heb het js event gedeelte opgelost:
onclick="ajax('pagina.php?id='+document.getElementById('id').value, 'txt')"
onclick="ajax('pagina.php?id='+document.getElementById('id').value, 'txt')"
Als ik de ajax.js kopieer en in dezelfde .html zet dan doet ie het, maar als ik hem include via ' src="" ' dan werkt het niet meer:S...
BramBo - 22/08/2007 15:26 (laatste wijziging 22/08/2007 15:39)
JS gevorderde
Edit:
Dat is waarschijnlijk een modeling fout. Staat je script in je head? gebruik je een doctype? etc.
Milannetjuhh - 22/08/2007 15:36 (laatste wijziging 22/08/2007 15:41)
Nieuw lid
Ja:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="ajax.js">
function test(variable){
alert(variable);
}
</script>
</head>
<body>
<input type="text" id="id">
<input type="button" onclick="test('pagina.php?id='+document.getElementById('id').value)" value="Submit">
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns= "http://www.w3.org/1999/xhtml" > <meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" / > <script type = "text/javascript" src = "ajax.js" > function test(variable){
alert(variable);
}
<input type = "text" id = "id" > <input type = "button" onclick = "test('pagina.php?id='+document.getElementById('id').value)" value = "Submit" >
BramBo - 22/08/2007 15:40
JS gevorderde
in Firefox/Opera heb je een javascript error console (Tools->error console)
Milannetjuhh - 22/08/2007 15:44
Nieuw lid
nee, geen errors daarin...
hier m'n script nu...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="ajax.js">
function test(variable){
alert(variable);
}
</script>
</head>
<body>
<input type="text" id="id">
<input type="button" onclick="test('pagina.php?id='+document.getElementById('id').value)" value="Submit">
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns= "http://www.w3.org/1999/xhtml" > <meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" / > <script type = "text/javascript" src = "ajax.js" > function test(variable){
alert(variable);
}
<input type = "text" id = "id" > <input type = "button" onclick = "test('pagina.php?id='+document.getElementById('id').value)" value = "Submit" >
BramBo - 22/08/2007 15:51
JS gevorderde
Ten eerste kan een script element met een src geen inline code meer hebben. Dus voor de functie test dien je een nieuw script element aan te maken.
Verder heeft je Ajax functie 3 parameters nodig (url, id, img_id).
Milannetjuhh - 22/08/2007 15:59
Nieuw lid
In de ajax.js heb ik: ", img_id" weggehaald, en dit is het html script, maar werkt nog steeds niet:(
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="ajax.js"></script>
</head>
<body>
<input type="text" id="id">
<input type="button" onclick="ajax('pagina.php?id='+document.getElementById('id').value, 'txt')" value="Submit">
<div id="txt"></div>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns= "http://www.w3.org/1999/xhtml" > <meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" / >
<input type = "text" id = "id" > <input type = "button" onclick = "ajax('pagina.php?id='+document.getElementById('id').value, 'txt')" value = "Submit" >
BramBo - 22/08/2007 16:05 (laatste wijziging 22/08/2007 16:08)
JS gevorderde
Heb het zelf even geprobeerd, 3x n vermelding naar imd_id verwijderd in je functie AJAX.
Check nogmaals je error console.
Error: uncaught exception: [Exception... "Component returned failure code: 0x80520012 (NS_ERROR_FILE_NOT_FOUND) [nsIXMLHttpRequest.send]" nsresult: "0x80520012 (NS_ERROR_FILE_NOT_FOUND)" location: "JS frame :: javascript: eval(__firebugTemp__); :: anonymous :: line 1" data: no]
Error: uncaught exception: [ Exception... "Component returned failure code: 0x80520012 (NS_ERROR_FILE_NOT_FOUND) [nsIXMLHttpRequest.send]" nsresult: "0x80520012 (NS_ERROR_FILE_NOT_FOUND)" location: "JS frame :: javascript: eval(__firebugTemp__); :: anonymous :: line 1" data: no]
/\ Logisch want bij mij bestaat het bestand niet.
als ik boven xmlHttp.open("GET", url, true); een alert doe (alert(url);) krijg ik de juiste url.
edit: om even mijn eigen drift naar correctie door te drukken:
ik zag in je javascript dat je functie ajax niet altijd een return waarde heeft. (gebruik er geen of altijd minimaal 1). en verder heb je xmlHttp niet geinitialiseerd (var xmlHttp;)
Milannetjuhh - 22/08/2007 16:17
Nieuw lid
Thanx man!
ik heb nu beetje aan zitte kloten en het is gelukt:D
100% bedankt:D:D:D!!!
Gesponsorde links
Dit onderwerp is gesloten .