webForumDet fria alternativet

Javascriptvariabel i en db-fråga

4 svar · 332 visningar · startad av Söderlund

SöderlundMedlem sedan juli 20031 505 inlägg
#1

Hur skall jag lyckas använda variabeln Id i javascriptfunktionen i db-anropet?

function javascriptfunktion(Id){
  .
  Lite javascript
  .
  $result = mysql_query("SELECT name FROM tbl_Table WHERE name=[b]Id[/b]");
  behandlar svaret från db...
  .
  lite mer javascript
}
The_HulkMedlem sedan juni 20031 837 inlägg
#2

du får nog förklara lite mer exakt vad du vill göra.
verkar konstigt att du försöker använda en variabel i PHP som du skickar in i en JavaScript-funktion. Om det är det du försöker göra får du tänka om. PHP körs enbart på servern och JavaScript enbart på klienten, det går inte att blanda exekveringen av dessa två.

Vill du att javascriptet ska exekvera något på servern måste du antingen anropa ett PHP-skript i en frame som sedan får fixa lite eller kan man använda sig av någon XML-funktion, har dock aldrig använt dessa XML-funktioner i javascript så jag vet inte hur de fungerar.

SöderlundMedlem sedan juli 20031 505 inlägg
#3

Jo, det går att blanda dessa två eller så är jag den första som lyckats.. :)

<html>
<head>
<title>Titel</title>
<script language="JavaScript" type="text/JavaScript">
<!--
function changePic(Id){
	<?
	$ur = '101';
	$imgData = mysql_query("SELECT * FROM tbl_Img WHERE imgName='$ur'");
	while ($row = mysql_fetch_row($imgData)) {
    	     echo "document.getElementById('bgLayer').innerHTML = \"".$row[1]."\"\n";
	}
	?>
	alert ('Funktionen körd');
}
//-->
</script>
<style type="text/css">
<!--
.divPos {
          position:absolute;  
          width:250px; 
          height:250px;
          visibility: visible;
          left:150px; 
          top:70px;
          z-index: 10;
          border: 1px solid black;
          background-color: #EEEEEE;
          font-size: 20px;
}
-->
</style>
</head>
<body>
<div id="bgLayer" class="divPos">Text i lagret som byts ut...</div>
<p><a href="#" onclick="changePic('101'); return false;">K&ouml;r funktionen</a></p>
</body>
</html>

Jag har redan kört en koppling mot databasen samt valt databas men jag har utelämnat den biten i koden ovan.

Om jag har koden som den är nu och trycker på länken 'Kör funktionen' så körs funktionen changePic, en fråga ställs mot databasen och resultatet skrivs ut i lagret 'bgLayer'.

Argumentet som skickas med i funktionsanropet, changePic('101'), vill jag kunna använda i databasfrågan, den variabel som nu heter $ur.

Hoppas att det blev lite klarare. :)

The_HulkMedlem sedan juni 20031 837 inlägg
#4

PHP-koden kommer att köras medan sidan laddas men inte efter att den blivit laddad. PHP-koden i javascriptet kommer alltså INTE att exekveras när du anropar Javascript-funktionen. Du skickar in ett Id till funktionen men använder dig aldrig av den.
din PHP-kod kommer att generera lite javascriptkod som kommer att exekveras då du anropar funktionen. Du sätter $ur = '101'; så oavsett vad du skickar in i funktionen anropar du samma i PHP-koden. testa att ändra changePic('101') till något annat så märker du att det din PHP-kod genererar kommer att bli detsamma.
Självklart går det att blanda koden men de kommer inte att exekveras som du vill.

SöderlundMedlem sedan juli 20031 505 inlägg
#5

Självklart kommer det inte att funka, va dumt man tänker ibland.
Enklast hade ju varit att bara kika i källkoden för sidan.
Det kan vara nytigt ibland att ta en paus och se problemen med nya friska, nyktra ögon istället för att envist stånga sig blodig för något som ändå inte kommer att funka. :)

Tack för hjälpen i alla fall. (y)

136 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)