Hoppas att någon kan ge mig ett exempel på hur man gör för att javascript ska kontakta en PHP fil med t ex två GET variablar... sen få tillbaka information ifrån PHP filen...
Alternativt tala om för mig vad detta heter så att jag själv kan söka på det.... man brukar ofta se denna funktionen hos sidor som erbjuder tjänster till personer som ej har stöd för PHP, ASP osv...
Jag hade gärna provat med Ajax.. men jag vet inte vad jag ska söka efter i detta fallet. Jag är helt och hållet insnöad i PHP och skuttar inte ofta över till Javascript och Ajax.
Det finns ju flera sätt att använda sig av det äldre sättet också... man kan ju inte få till de där snygga, dvs ändringar utan att behöva ladda om sidan..
Mitt ovanstående exempel skulle kunna skrivas så här också, tror jag.
Har du något AJAX exempel som utför samma sak som i detta exempel.. bara det att den laddar om datan automatiskt? Eller om du kan peka mig i rätt riktning.
<html>
<head>
<title>Simple Ajax Example</title>
<script language="Javascript">
function xmlhttpPost(strURL) {
var xmlHttpReq = false;
var self = this;
// Mozilla/Safari
if (window.XMLHttpRequest) {
self.xmlHttpReq = new XMLHttpRequest();
}
// IE
else if (window.ActiveXObject) {
self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}
self.xmlHttpReq.open('POST', strURL, true);
self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
self.xmlHttpReq.onreadystatechange = function() {
if (self.xmlHttpReq.readyState == 4) {
updatepage(self.xmlHttpReq.responseText);
}
}
self.xmlHttpReq.send(getquerystring());
}
function getquerystring() {
var form = document.forms['f1'];
var word = form.word.value;
qstr = 'w=' + escape(word); // NOTE: no '?' before querystring
return qstr;
}
function updatepage(str){
document.getElementById("result").innerHTML = str;
}
</script>
</head>
<body>
<form name="f1" method="POST">
<p>word: <input name="word" type="text">
<input value="Go" type="button" onclick='JavaScript:xmlhttpPost("source.php")'></p>
<div id="result"></div>
</form>
</body>
</html>
Men jag behöver ändra den lite... får inte det att fungera dock. Jag vill skippa <form> biten och istället anropa source.php?w=hej
Allt som sker på PHP sidan har jag koll på.
För att vara ännu tydligare... jag vill att en användare ska kunna använda <script>anropa source.php?id=555&sec=333</script> på sin sida och få tillbaka det som jag skriver ut i PHP filen....
I PHP tar jag emot GET variablerna...hämtar data ur databasen och skriver ut det som ska skrivas ut.
Det borde gå att bygga om koden ovan.. men jag har ingen aning hur man gör :birp
Det får ju helst bara vara ett par rader långt också.
Exempel på det jag är ute efter.... Google adsense, fast en mycket simpel variant
Rekommenderar varmt att du använder något av de stora javascriptlibbarna för "ajax" grejer, så får du funktionalitet som är väldokumenterad och vältestad.
T.ex. Mootools Request
Så här skulle koden kunna se ut:
var url = "http://server.com/script.php";
var argument = "parameter1="+value1+"¶meter2=" + value2
var ajax = new Request({url: url,
method: 'get',
onComplete: function (reponseText) {
// kod när requestet är klart
}).send(argument);
Jag har en lösning nu..typ. Problemet är att den bara fungerar i FF... har felsökt koden i ett bra tag nu och kan inte komma fram till varför den inte vill fungera i IE och safari
fetch.js
function xmlhttpPost(strURL) {
var xmlHttpReq = null;
try
{
xmlHttpReq=new XMLHttpRequest();
}
catch (e)
{
try
{
xmlHttpReq=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttpReq=new ActiveXObject("Microsoft.XMLHTTP");
}
}
xmlHttpReq.open('POST', strURL, true);
xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlHttpReq.onreadystatechange = function() {
if (xmlHttpReq.readyState == 1) {
updatepage('<br /><br /><img src="loader.gif" border="0" alt="" style="margin-left:15px;" />');
}
if (xmlHttpReq.readyState == 4) {
updatepage(xmlHttpReq.responseText);
}
}
xmlHttpReq.send(getquerystring());
}
function getquerystring() {
var form = document.forms['feeds'];
var word = form.feed.value;
qstr = 'feed=' + escape(word);
return qstr;
}
function updatepage(str){
document.getElementById("result").innerHTML = str;
}
<?php
$url = $_POST['feed'];
if(isset($_POST['feed']))
{
if(preg_match("/http:/", $url))
{
require_once("class_rss.php"); //Hämtar klassen
$rss = new rssHandler(); //Skapar instans till klassen
//Här anger du RSS-feedens url
$antal = 20; //Här anger du hur många inlägg du vill skriva ut
//Här skickar du in datan som klassen behöver och skriver ut den
echo $rss->show_feed($url, $antal);
}
}
?>
253 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849