![]() |
|
|
|||||||
| PHP Här diskuteras allt som har med scriptspråket PHP att göra. |
![]() |
|
|
Trådverktyg | Visningsalternativ |
|
|
#1 |
|
Medlem
Registrerad: 2006-03-11
Ort: Sundsvall
Inlägg: 125
Lösningar: 0 |
Sista detaljen, sen är det eländiga projektet klart!
Jag tjurar på med mitt projekt...
Från början hade jag en xml-fil som jag hämtade data ur. Sen ändrade jag mig och fixade en databas istället. Har lyckats fixa alla ändringar som behövdes, med hjälp av snälla människor här på forumet och med hjälp av en himla massa tutorials. Nu återstår EN säger EN liten detalj: I index.html använde jag mig av ett script som tog reda på vilket projekt användaren hade valt, för att sen lägga namnet på detta projekt i variabeln info. Denna variabel användes sedan av andra script för att kunna plocka ut det projekt (i en xml-fil) vars namn var det som låg i info-variabeln. Sen kunde man hitta på lite av varje. Nu ska jag istället för en xml-fil använda mig av en databas, och jag är lite fundersam till hur jag ska kunna föra över info-variabeln till php-filen. Jag har försökt att lägga info-variabeln i php-länken som syns i koden nedan, men det funkar inte. Hur kan jag rätta till det? Kod:
Själva scriptet:
var info;
var xmlhttp;
function getSelected (selectTag)
{
var selIndex = "";
for (var i = 0; i < selectTag.options.length; i++)
{
var optionTag = selectTag.options[i];
if (optionTag.selected)
{
selIndex += optionTag.text;
}
info = selIndex;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("rightcontainer").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","hamtaInfo.php?info");
xmlhttp.send();
}
och i bodyn:
<div class="rubrik" id="valjprojekt">
<form name="form1" method="get" action="">
<label for="vp">Välj projekt:<br>
</label>
<select onChange="getSelected(this)">
<option>*** Välj projekt ***</option>
<option>knatte</option>
<option>fnatte</option>
<option>tjatte</option>
</select>
<p></p>
</form>
</div>
PHP-kod:
__________________
Hindu philosophy: Life sucks, and then you die. And then life sucks again... |
|
|
|
|
|
#2 |
|
Medlem
Registrerad: 2003-01-15
Ort: Oskarshamn
Inlägg: 288
Lösningar: 72 |
Du missar bara att skicka med ditt värde i anropet:
Kod:
xmlhttp.open("GET", "hamtaInfo.php?info=" + encodeURIComponent(info));
__________________
"OK, that's the last memory leak." |
|
|
|
|
|
#3 |
|
Medlem
Registrerad: 2006-03-11
Ort: Sundsvall
Inlägg: 125
Lösningar: 0 |
Det enda php skriver ut är rubriken i tabellen; "Alla projekt"...
__________________
Hindu philosophy: Life sucks, and then you die. And then life sucks again... |
|
|
|
|
|
#4 |
|
Medlem
Registrerad: 2003-01-15
Ort: Oskarshamn
Inlägg: 288
Lösningar: 72 |
Aha, du använder $_POST['info']; i PHP-koden såg jag nu. Du får ändra till $_GET['info']; om värdet ska hämtas från querystringen istället.
__________________
"OK, that's the last memory leak." |
|
|
|
|
|
#5 |
|
Medlem
Registrerad: 2006-03-11
Ort: Sundsvall
Inlägg: 125
Lösningar: 0 |
OK, nu funkar hämtningen av info, MEN istället så har två knappar lagt av eftersom jag lyckades trolla bort den gamla koden jag använde för att skapa forms så att användaren kan mata in nya siffror att uppdatera databasen med. Har skapat nya forms, en för tid och en för kostnad, men då var det där med variabler till php igen... Datat förs inte över till databasen.
Kod:
function redigeraTimmar()
{
malElement = "<h2 class='rubrik'>Skapa nytt projekt:</h2>";
malElement += "<form name='form3' method='post' action='skapaNytt.php'><table class='brodtext'>";
malElement += "<tr><td>Projektets namn</td><td><input id='namn' name='namn' type='text' value='" + info + "' size='30'/></td></tr>";
malElement += "<tr><td>Ange timmar:</td><td><input id='timmar' name='timmar' type='text' value='' size='30'/></td></tr>";
malElement += "<tr><td></td><td><input type='button' onclick='sparaTimmar()' value='Lägg till timmar' /><br /><input type='button' onclick='allaTimmar()' value='Alla timmar' /></td></tr></table></form>";
document.getElementById('rightcontainer').innerHTML=malElement;
}
function sparaTimmar()
{
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("rightcontainer").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","soaraTimmar.php?info=" + encodeURIComponent(info));
xmlhttp.send();
}
PHP-kod:
__________________
Hindu philosophy: Life sucks, and then you die. And then life sucks again... Senast redigerad av PollyJuice, 2012-05-10 klockan 21:35 |
|
|
|
|
|
#6 |
|
Medlem
Registrerad: 2003-01-15
Ort: Oskarshamn
Inlägg: 288
Lösningar: 72 |
När du ska spara värden så är det egentligen mer rätt att använda POST istället för GET, men det kanske inte spelar så stor roll just nu.
Hur som helst måste du se till att skicka med rätt parametrar till sidan som ska spara informationen. Kod:
xmlhttp.open("GET","soaraTimmar.php?info=" + encodeURIComponent(info));
Kod:
var namn = "test", timmar = "10"; // hämta dessa värden från formuläret
xmlhttp.open("GET","soaraTimmar.php?namn=" + encodeURIComponent(namn) + "&timmar=" + encodeURIComponent(timmar));
__________________
"OK, that's the last memory leak." |
|
|
|
|
|
#7 |
|
Medlem
Registrerad: 2006-03-11
Ort: Sundsvall
Inlägg: 125
Lösningar: 0 |
var namn = document.getElementById('namn').value;
var timmar = document.getElementById('timmar').value; xmlhttp.open("GET","sparaTimmar.php?namn=" + encodeURIComponent(namn) + "&timmar=" + encodeURIComponent(timmar)); xmlhttp.send(); Den VILL bara inte fatta! namn blir knatte eller fnatte eller tjatte beroende på vilket projekt jag väljer, och timmar får det värde jag matar in, det kollade jag med en alert. Så varför förs inte dessa värden över till php:n?
__________________
Hindu philosophy: Life sucks, and then you die. And then life sucks again... |
|
|
|
|
|
#8 |
|
Medlem
Registrerad: 2003-01-15
Ort: Oskarshamn
Inlägg: 288
Lösningar: 72 |
Jag ser inget uppenbart fel i ditt sista kodexempel. Vad gör sparaTimmar.php efter att UPDATE-frågan körts? I ditt javascript säger du att PHP-sidans svar ska skrivas ut i "rightcontainer", men gör sparaTimmar.php något annat än att bara spara värdena?
Har du kollat i databasen så att inget uppdatarats ändå?
__________________
"OK, that's the last memory leak." |
|
|
|
|
|
#9 |
|
Medlem
Registrerad: 2006-03-11
Ort: Sundsvall
Inlägg: 125
Lösningar: 0 |
Jag har egentligen tänkt att sparatimmar.php bara ska visa en länk tillbaka till index, men det är "smink". Det viktigaste är att jag kollar i databasen efter varje gång jag kör scriptet, och ingenting har uppdaterats. Trots att jag har stavat rätt till "spara" den här gången.
__________________
Hindu philosophy: Life sucks, and then you die. And then life sucks again... |
|
|
|
|
|
#10 |
|
Medlem
Registrerad: 2006-03-11
Ort: Sundsvall
Inlägg: 125
Lösningar: 0 |
Ligger månne svaret på gåtan i php-koden?
PHP-kod:
__________________
Hindu philosophy: Life sucks, and then you die. And then life sucks again... Senast redigerad av PollyJuice, 2012-05-10 klockan 22:45 Anledning: stavfel |
|
|
|
|
|
#11 |
|
Medlem
Registrerad: 2003-01-15
Ort: Oskarshamn
Inlägg: 288
Lösningar: 72 |
Jag ser inget fel där heller egentligen. Vad händer om du kör sidan direkt i webbläsaren? Typ: http://...adress.../sparaTimmar.php?...10&namn=knatte
(eller lämpliga "riktiga" parametrar). Skrivs sidan ut som den ska? Uppdateras något i databasen?
__________________
"OK, that's the last memory leak." |
|
|
|
|
|
#12 |
|
Medlem
Registrerad: 2006-03-11
Ort: Sundsvall
Inlägg: 125
Lösningar: 0 |
Va f..? Då funkar det! Mysko...
Jag lämnade in uppgiften i detta skick nu, för deadlinen var för 5 minuter sen. Jag hoppas att jag åtminstone kan få FX på den, så att jag kan rätta till den i efterskott och få godkänt på kursen när den väl "uppför" sig. Tack snälla, för din hjälp och ditt tålamod, du är verkligen jättebussig!
__________________
Hindu philosophy: Life sucks, and then you die. And then life sucks again... |
|
|
|
|
|
#13 |
|
Medlem
Registrerad: 2003-01-15
Ort: Oskarshamn
Inlägg: 288
Lösningar: 72 |
Inga problem. Får hoppas att det löser sig
__________________
"OK, that's the last memory leak." |
|
|
|
![]() |
| Trådverktyg | |
| Visningsalternativ | |
|
|