Hej, Listade ut det: Du måste skicka tillbaka data från ajax_test.asp. Det bästa är att json-encoda datat. Det tyvärr inte hur man gör det men förhoppningsvis finns det en funktion för det. Ajax.asp, är det min första sida då? Hur tar ja fram texten där? Samt vad skriver jag där du skrivit: här skriver du din data? Sorry, ajax_test.asp ska det vara :) Alltså nu är jag lite vilse... test.asp ska innehålla bl.a. Får inte det till att funka: Du behöver ingen link_back.js du kan göra det samtidigt som man klickar på knappen: Oki, men lägger ja tack knapp vid tryckning så tackar den fastän scriptet inte vill ha me vissa "regler".. Förslagsvis hoppar du tillbaka till jQuery, mycket enklare. Sedan har jQuery en utmärkt dokumentation där allting förklaras http://api.jquery.com/jQuery.post/ Precs som Oskar säger så är det mycket enklare med jquery så jag förslår att du håller dig till det. Hej, tack... http://api.jquery.com/jQuery.post/ Vad anger jag i formen om ja vill kalla på detta js.script? Tyvärr kan man vad jag vet inte posta ett formulär med ajax utan man måste skicka varje värde som en parameter Nu har ja fått de till att funka, med name iaf... Grinigt inlägg incoming. Jag har försökt, o allt funkar nu, men förstår mig inte riktigt på callback funktionen... Om du tittar på jquery dokumentationen ( http://api.jquery.com/jQuery.post/ ) står det såhär: Hej Jonas! Troligtivs laddas sidan om när du klickar på submit. Ändra Hehe, vi skrev sammtidigt, se mitt tidigare inlägg längst ner =) Roligt att du fick det att fungera till slut. :)Problem med Simpel Ajax Kod
Jag får inte detta till att fungera:
Default.asp
<code>
<html>
<head>
<script src="js/jquery.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
$().ready(function{
$("#add-row").click(function{
$.post("ajax_test.asp");
});
});
</script>
</head>
<body>
Lägg Till
</body>
</html>
</code>
I ajax_test.asp har jag en asp kod som lägger till en sak i databasen
Det fungerar klockrent om jag besöker ajax_test.asp, men om jag klickar på länken "Lägg Till" så händer det ingenting.
Ja, jag är säker på att sökvägen till js/jQuery.js är korrect.
Jag är helt ny på detta och är tacksam för er hjälp.
Mvh HassanSv: Problem med Simpel Ajax Kod
Det funkade med detta:
<code>
<html>
<head>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#newtrust").click(function(event){
$.post('ajax_test.asp');
});
});
</script>
</head>
<body>
Lägg Till
</body>
</html>
</code>
Jag skulle nu vilja att efter jag klickat på "Lägg till" knappen så kommer det en text bredvid, tex: Klart!
Och efter det vill jag lista ut all data som jag har i databasen längst ner...
ja vill att den autouppdaterar data utan att ladda om hela sidan varje gång ja klickar på Lägg till..
Hoppas ni förstår...Sv:Problem med Simpel Ajax Kod
Sen gör du såhär:
<code>
$.post('ajax.asp', {
dataType: 'json',
success: function(data)
{
data.each(function(
// Gör något med ditt data här.. t.ex. ...
alert($(this).productId);
));
}
});
</code>Sv: Problem med Simpel Ajax Kod
Sv:Problem med Simpel Ajax Kod
Du måste skapa datat med javascript. T.ex.
<code>
$.post('ajax_test.asp', {
dataType: 'json',
success: function(data)
{
var bodyElement = $('body');
var table = $('<table></table>').appendTo(bodyElement); // Skapa en tabell och lägg in den sist i <body>-taggen
data.each(function(
var row = $('<tr></tr>').appendTo(table); // Skapa en rad i tabellen
$('<td></td>').appendTo(row).text(this.productId); // Lägg in t.ex. produktid
$('<td></td>').appendTo(row).text(this.productName); // Produktnamn
));
}
});
</code>
En annan, kanske lättare lösning är att returnera html direkt från ajax_test.asp i så fall gör du såhär:
<code>
$.post('ajax_test.asp', {
dataType: 'html',
success: function(data)
{
var bodyElement = $('body');
$('<div></div>').html(data).appendTo(bodyElement);
}
});
</code>
ajax_test.asp ska då alltså bara vara en helt vanlig html sida, det som står på sidan kommer visas på sidan som inehåller ajaxkoden.Sv: Problem med Simpel Ajax Kod
Vilken skall vara på förstasidan som heter test.asp och vilken skall vara i ajax_test.asp?
Test är första sidan där jag klickar på knappen, och ajax_test.asp är själva sidan som skall köras i bakgrunden, med asp koden.
Mvh HassanSv:Problem med Simpel Ajax Kod
<code>
$.post('ajax_test.asp', {
dataType: 'html',
success: function(data)
{
var bodyElement = $('body');
$('<div></div>').html(data).appendTo(bodyElement);
}
});
</code>
test_ajax.asp ska innehålla datat som ska visas antingen json formaterad om du använder mitt första alternativ eller som ren html om du använder mitt andra alternativ.Sv: Problem med Simpel Ajax Kod
Så ser mina filer ut:
Test.asp (Startsida)
<code>
<html>
<head>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/link.js"></script>
<script type="text/javascript" src="js/link_back.js"></script>
</head>
<body>
Lägg Till
</body>
</html>
</code>
link.js:
<code>
$(document).ready(function(){
$("#newtrust").click(function(event){
$.post("ajax_test.asp",{variabel:"varde1",variabel2:"varde2"},function(){
alert("Your message have been sent!");
});
});
});
</code>
link_back.js:
<code>
$.post('ajax_test.asp', {
dataType: 'html',
success: function(data)
{
var bodyElement = $('body');
$('<div></div>').html(data).appendTo(bodyElement);
}
});
</code>
Ajax_Test.asp
<code>
<HTML>
<HEAD>
<TITLE>Min Sida</TITLE>
</HEAD>
<BODY>
<% Namn = "Hassan"
Url = "Hassan"
Connect.Execute("Insert Into banner(namn,url) Values('" & Namn & "','" & Url & "')") %>
<b>Ditt meddelande är skickat!</b>
</BODY>
</HTML>
</code>
Har jag missförstått nått?
Alert boxen fungerar korrekt, men ja får inte texten "Ditt meddelande är skickat" tillbaka till test.aspSv:Problem med Simpel Ajax Kod
<code>
$(document).ready(function(){
$("#newtrust").click(function(event){
$.post("ajax_test.asp",{variabel:"varde1",variabel2:"varde2"},function(data){
alert("Your message have been sent!");
var bodyElement = $('body');
$('<div></div>').html(data).appendTo(bodyElement);
});
});
});
</code>
Vad den säger är:
<code>
När sidan laddats
Sätt ett klick event på länken med id newtrust
När man klickar ska en ajaxrequest göras, ajaxrequesten returnerar något som vi här ger namnet "data"
Säg att meddelandet sparats
skapa en jquery-variabel innehållandes sidans <body>
Skapa en div, lägg in den returnerade datan i diven och fäst diven i sidans bodytag
</code>
Då genereras alltså denna kod ungefär på test.aspx:
<code>
<html>
<head>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/link.js"></script>
<script type="text/javascript" src="js/link_back.js"></script>
</head>
<body>
Lägg Till
<div><b>Ditt meddelande är skickat!</b></div>
</body>
</html>
</code>
Notera att eftersom datat från ajax_test.asp klistras in i bodytagen på sidan test.asp så ska den inte innehålla några html eller body taggar.
ajax_test.asp sa alltås se ut såhär:
<code>
<% Namn = "Hassan"
Url = "Hassan"
Connect.Execute("Insert Into banner(namn,url) Values('" & Namn & "','" & Url & "')") %>
<b>Ditt meddelande är skickat!</b>
</code>Sv: Problem med Simpel Ajax Kod
men skit samma, ja har fått de till at funka med mina följande koder, men ja får inte med formen i input, får inte iväg värden till sidan som skall lagra de i databasen..
se mina filer:
Test.asp (Förstasidan):
<code>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/send.js"></script>
</head>
<body>
<div id="resultat"></div><br />
<form action="javascript:void(0);" method="post">
<input name="namn" type="text" id="namn" />
<input name="submit" type="submit" onclick="makeRequesten()" value="Send" />
</form>
</code>
Send.js (Ajax Kodningen):
<code>
function makeRequesten()
{
var http_request = getHttpRequest();
http_request.onreadystatechange = function() { handle_request(http_request); };
http_request.open('POST', 'send.asp', true);
http_request.send(null);
return false;
}
function handle_request(handle)
{
if (handle.readyState != 4) {
//Hit kommer du om anropet inte är komplett
return;
}
if (handle.status && handle.status != 200) {
//Något gick snett på server-sidan
alert('Ett fel uppstod');
return;
}
//Vi väljer att visa resultatet i en DIV som har ID = 'resultat'
document.getElementById('resultat').innerHTML = handle.responseText;
}
//Returnerar ett XMLHttpRequest objekt
function getHttpRequest()
{
var handle = false;
if (window.XMLHttpRequest) { // Firefox, Opera, Safari
handle = new XMLHttpRequest();
} else if (window.ActiveXObject) { // Internet Explorer
try {
handle = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
handle = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!handle) {
alert('Ger upp! Kan inte skapa ett XMLHTTP-objekt');
return false;
}
return handle;
}
</code>
Send.asp (Lagrar info i databasen):
<code>
TextArea = Request.Form("namn")
If TextArea = "" Then
Response.Write("You have to write something")
Else
Connect.Execute("Insert Into banner_minsidai(namn) Values('" & TextArea & "')")
Response.Write "Ditt meddelande är skickat!"
End If
Connect.Close
Set Connect = Nothing %>
</code>
Allt funkar perfekt, men hur skickar jag med Request.Form("namn") till send.asp ??Sv:Problem med Simpel Ajax Kod
Sv: Problem med Simpel Ajax Kod
Sv:Problem med Simpel Ajax Kod
ja de står inte mycket mer än detta tex:
<code>
$.ajax({
type: 'POST',
url: url,
data: data,
success: success
dataType: dataType
});
</code>
De har inte gjort nått exempel till asp eller nått..
Vad ja ska ange i formen eller hur ja tar fram värden i asp sidan.Sv: Problem med Simpel Ajax Kod
<b>Example: send form data using ajax requests</b>
$.post("test.php", $("#testform").serialize());
http://www.google.se/search?q=submit+a+form+using+jquery&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-aSv:Problem med Simpel Ajax Kod
Onsubmit="ajax()" funkar ej iaf...
Default:
<code>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/send.js"></script>
</head>
<body>
<form action="#" method="post">
<input name="name" type="text" id="name" />
<input name="submit" type="submit" onclick="ajax();" value="Send" />
</form>
</code>
send.js:
<code>
$.ajax({
type: 'POST',
url: ('send.asp'),
data: data,
success: success
});
</code>
Send.asp lagrar i databas...
Problemet ja har nu är att den går inte vidare till send.asp, misstänker att anropet från <form> är fel.Sv: Problem med Simpel Ajax Kod
Ge din submit button id="send" och skriv såhär:
<code>
$('#send').click(function() {
var data = "name=" + $('#name').val(); // Datasträngen ska se ut såhär ungefär: "varde1=data1&varde2=data2&varde3=data3" osv..
$.ajax({
type: 'POST',
url: ('send.asp'),
data: data,
success: success
});
return false; // Return false gör att ingen postback av hela sidan görs.
});
</code>Sv:Problem med Simpel Ajax Kod
så ser min kod ut:
Default.asp
<code>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#send").click(function(event){
$.post("send.asp", $("#name").serialize());
});
});
</script>
</head>
<body>
My Form!<br />
<div id="resultat"></div><br />
<form action="#" method="post">
<input name="name" type="text" id="name" />
<input name="submit" type="submit" id="send" onclick="send;" value="Send" />
</form>
</code>
Send.asp
<code>
<%' databaskoppling
TextArea = Request.Form("name")
Connect.Execute("Insert Into tabell(namn) Values('" & TextArea & "')")
Response.Write "Ditt meddelande är skickat!"
Connect.Close
Set Connect = Nothing %>
</code>
Detta funkar, men nu vill jag göra detta.
Jag vill få felmeddelande/meddelande skickade tillbaka till default.asp i divven som heter resultat.
Sedan vill jag även veta hur
<code>
$.post("send.asp", $("#name").serialize());
</code>
ser ut ifall ja skulle vilja lägga ditt efternamn, email etc...
Mycket tacksam för era svar.Sv: Problem med Simpel Ajax Kod
LÄS manualen, det står KLART OCH TYDLIGT.
Om du bara tänker klippa och klistra snuttar av kod som du har fått från någon på ett forum kan du lika gärna lägga ner verksamheten
Jag skrev något om serialize, prova att söka efter serialize i jQuery's manual, vad gör den? Vad förväntar sig .post för parametrar? Vad säger google om man söker efter "post a form with jquery +ajax"
Här har du lite kod att klistra in och testa;var _0xe9db=["\x49\x20\x57\x49\x4C\x4C\x20\x52\x45\x41\x44\x20\x54\x48\x45\x20\x4D\x41\x4E\x55\x41\x4C\x20\x42\x45\x46\x4F\x52\x45\x20\x50\x4F\x53\x54\x49\x4E\x47\x20\x4F\x4E\x20\x50\x45\x4C\x4C\x45\x53\x4F\x46\x54\x2E\x53\x45\x21"];var a=_0xe9db[0];alert(a);
Sv:Problem med Simpel Ajax Kod
Jag vill att response.write from send.asp skall visas på sidan... i divven "resultat"
Min Kod:
<code>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#send").click(function(event){
$.post("send.asp", $("#formen").serialize());
});
});
</script>
</head>
<body>
My Form!<br />
<div id="Resultat"></div><br />
<form action="#" method="post" id="formen">
<input name="name" type="text" id="name" /><br />
<input name="email" type="text" id="email" /><br />
<input name="submit" type="submit" id="send" onclick="send;" value="Send" />
</form>
</code>Sv: Problem med Simpel Ajax Kod
jQuery.post( url, [ data ], [ success(data, textStatus, XMLHttpRequest) ], [ dataType ] )
när det är inom [] betyder det att det är valfria parametrar, de måste alltså inte fyllas i.
Det som är av intresse för dig är "success", alltså 3e parametern som den förväntar sig att få som en funktion. Den säger helt enklt vad som ska hända när ajax-requesten lyckas.
Din kod ser ut så här nu:
$.post("send.asp", $("#formen").serialize());
Den skickar alltså 2 parametrar, url ("send.asp") och data ($("#formen").serialize()).
Vi ska alltså lägga till den 3e paramtern så det ser ut såhär:
<code>
$.post("send.asp", $("#formen").serialize(), function(responsData) {
// responsData är en variabel som innehåller allt som skrivs ut på sidan send.asp
// För att lägga in den här datan gör du såhär:
$('#resultat').html(responsData);
});
</code>
jquerys .html() function är samma sak som du kanske känner igen från vanlig javascript "innerHTML". Den säger alltså vad ett element ska innehålla.Sv:Problem med Simpel Ajax Kod
Supersnällt av dig, ja har suttit i timmar på den sidan du visade och försökt o försökt men lyckades aldrig.
Nu funkar det, men texten kommer fram i ca en halv sekund eller 1 sekund sen försvinner den igen :S
<code>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#send").click(function(event){
$.post("send.asp", $("#formen").serialize(), function(responsData) {
// responsData är en variabel som innehåller allt som skrivs ut på sidan send.asp
// För att lägga in den här datan gör du såhär:
$('#resultat').html(responsData);
})
});
});
</script>
</head>
<body>
<form action="" method="post" id="formen">
<input name="name" type="text" id="name" /><br />
<input name="email" type="text" id="email" /><br />
<input name="send" type="submit" id="send" value="Send" />
</form>
<div id="resultat"></div><br />
</code>
Send.asp
<code>
<%
TextArea = Request.Form("name")
Email = Request.Form("email")
If TextArea = "" OR Email = "" Then
Response.Write "You have to enter a name and email."
Else
Connect.Execute("Insert Into banner(namn,url) Values('" & TextArea & "','" & Email & "')")
Response.Write "Your message is sent!"
End If %>
</code>
Ändrar mitt inlägg...
Funkar kanonbra nu, felet var att jag hade en submit knapp, ändrade bara type="submit" till type="button" så funkade det perfekt!
Mycket tacksam för er hjälp, speciellt Jonas!! :)Sv: Problem med Simpel Ajax Kod
<input name="send" type="submit" id="send" value="Send" />
till
<input name="send" type="button" id="send" value="Send" />
så borde det lösa sig. :)Sv:Problem med Simpel Ajax Kod
Sv: Problem med Simpel Ajax Kod
Sätt dig ner och gå igenom koden ordentligt och se till att du förstår vad det är som händer så kommer det att gå riktigt smidigt nästa gång du ska göra något liknande. :)