Nu har jag försökt och försökt... Medan datorn har pajat och jag försökt komma ihåg hur jag gjort tidigare och inte gjort. Suck! Koden börjar se helt förfärlig ut så nu tänkte jag fråga innan jag fortsätter. Är detta möjligt med bara php?
Hämta en hästs namn i option som sedan lägger in hästens kolumn i textarea som ska redigeras och sparas. Eller måste man skicka vidare till ny sida?
Tog bort länken som fanns här tidigare.
Tacksam för lite tips om hur man gör detta bäst.
Ändra i tabell
12 svar · 747 visningar · startad av tanten
Om du använder PHP tillsammans med Javascript så går det att lösa
Skapa upp en javascript array: hastar[1] = "bla bla bla text som skall editeras"
Denna kan du skapa upp via php.
Exempel på hur jag har gjort:
<script language="javascript">
bgcolor = new Array();
<?
$sql = "select * from templates order by id";
$res = mysql_query($sql) or die(mysql_error()."<br>".$sql);
while ($row = mysql_fetch_assoc($res)) {
echo "bgcolor[".$row['id']."] = '".$row['bgcolor']."';";
}
?>
function updatebgcolor() {
bgcolorform = document.getElementById('bgcolor');
bgcolorform.value = bgcolor[document.getElementById('option').value];
}
</script>
Sen använder du onChange="updatebgcolor();" i optionen.
Option måste då ha id "option" och textarea måste ha id "bgcolor" i mitt exempel
Tack så mycket Spinx, ska se senare i kväll om jag kan få i hop det. :D
Känns lite mer motiverat att försöka igen nu...
Jag tar upp min gamla tråd igen. Har inte hunnit att fortsätta med den förrän nu. Vad är fel? Vad behövs. Har försökt få in javascriptet men vet nog inte hur man gör :r
Någon som kan ge tips om hur jag ska gå vidare.? Eller är det här fel sätt att göra detta på? Hämta en text. Redigera den och spara på en och samma admin-sida. Taget ur en bok.
$hamta = "SELECT h.stallID, h.namn, h.besk
FROM hest AS h
INNER JOIN stallad AS s ON ( h.stallID = s.stallID )
WHERE s.ur_treningDatum IS NULL
ORDER BY namn";
$resultat = mysql_query($hamta) or die("Det gick inte att hämta information från databasen!");
while($rad = mysql_fetch_array($resultat))
{
echo "<option value='{$rad['stallID']}' >{$rad['namn']} </option>";
}
echo "</select></fieldset><p>
<input type='submit' name='Submit' value='submit' /></p></form>";
// ett försk att hitta array $rad = $_POST['namn'];
mysql_free_result($resultat);
if(isset($_POST['namn']))
{
$sql2="SELECT besk FROM hest WHERE namn='{$_POST['namn']}'AND stallID='$stallID'";
$result=mysql_query($sql2);
$besk = mysql_fetch_array($result);
//uppdateringen börjar här
if (isset($_POST['submit']) && $_POST['submit'] == 'Submit')
{
//formatera data
$besk = $_POST['besk'];
$as_besk = addslashes($_POST['besk']);
//uppdatera beskrivningen
$query = "UPDATE besk SET besk = '$as_besk WHERE namn = '{$rad['namn']}'";
$result = mysql_query($query);
if (mysql_affected_rows() == 1)
{
$success_msg = '<p> Beskrivningen har blivit uppdaterad!</p>';
}else{
error_log(mysql_error());
$success_msg = '<p>Något blev fel</p>';
}
}else{
//På något sätt ska besk hämtas, detta är ett försök som inte fungerar
$rad = $_POST['namn'];
$query ="SELECT besk FROM hest WHERE namn` = {$rad['namn']}";
if ($result = mysql_query($query));
$besk_arr = mysql_fetch_array($result);
$besk = stripslashes ($besk_arr[1]);
}
$thispage = $_SERVER['PHP_SELF'];
}
Alltså vill du hämta den data som är sparad för just den hästen och visa det i textarean? eller vill du bara lägga in hästnamnet i textarean, förstod inte riktigt din fråga!
Inget av det ska vara några problem med javascript så det löser vi ;-)
mvh
Ja det är data för en häst i taget jag vill få in i textarean. Som ska kunna redigeras och sparas på nytt. Idén syns i länken i första inlägget... Tror det finns en del fel i koden också...
Har varit utan ström i 18 timmar nu i stormen, hoppas den är kvar för att stanna nu :-)
MVH
Det där kan lösas utan JavaScript genom att döpa fälten i formen med name och ladda om sidan. Om du ger dina två submit-knappar olika namn, så kan du fånga de olika knapparna var för sig. Varje formfält som får ett name kan kommas åt via det namnet.
$_POST['index'] fångar resultatet från det formelement som innehåller
.... name="index"....
//Översta formen skrivs alltid ut på samma sätt
echo '<form name="HastVal" method="post" action="dennaFil.php">
<select name="hast">';
$hamta = "SELECT h.stallID, h.namn
FROM hest AS h
INNER JOIN stallad AS s ON ( h.stallID = s.stallID )
WHERE s.ur_treningDatum IS NULL
ORDER BY namn";
$resultat = mysql_query($hamta) or die("Det gick inte att hämta information från databasen!");
while($rad = mysql_fetch_array($resultat))
{
echo '<option value="'.$rad['stallID'].'" >'.$rad['namn'].' </option>';
}
echo '</select></fieldset><p>
<input type="submit" name="SubmitHastVal" value="submit" /></p></form>';
//Om första submitknappen tryckts in OCH du har valt en häst
if (isSet($_POST["SubmitHastVal"]) && isSet($_POST["hast"])) {
//Hämta befintlig info om hästen
$sql2="SELECT besk FROM hest WHERE stallID=".$_POST['hast'];
$result=mysql_query($sql2);
$row = mysql_fetch_array($result);
$info = $row[0];
$hastID = $_POST["hast"];
}
else {
$info = '';
$hastID = '';
}
//Andra formen laddas med befintlig info OM
//första submitknappen tryckts in OCH du har valt en häst
//Annars är textfältet tomt
echo '<form name="updateInfo" method="post" action="dennaFil.php">
<textarea name="infoField">'.$info.'</textarea>
<input type="hidden" name="hastID" value="'.$hastID.'">
<input type="submit" name="SubmitUpdate" value="submit" /></form>';
//Om andra formen fyllts i - uppdatera
if (isSet($_POST["SubmitUpdate"]) && isSet($_POST["infoField"])) {
$sql3= "UPDATE hest SET besk='".$_POST["infoField"]."' WHERE stallID = $hastID";
mysql_query($sql3);
}
Obs att felhanteringen är minimal här!
Suttit nu och försökt få ditt förslag att fungera aasah, men får "No input file specified", när jag tryckt på en häst.
Ska <form name="updateInfo"... se ut så? Jag hittar ingen $_post för den, eller ska det inte behövas i textfield?
Har skickat med
error_reporting(E_ALL); men får inga andra felmeddelanden.
För action måste du ändra till edit.php.
Peter S. Men så korkad jag är! :r
Tack så jättemycket :bire
Nu har jag kommit en bit till med denna adminsida, men uppdateringen fungerar inte.
$sql3= "UPDATE hest SET besk='".$_POST["infoField"]."' WHERE stallID = $hastID";
När jag lagt till echo så visar det sig att $hastID inte har något värde.
När jag då på olika sätt försökte få fram värdet så blev det så här
$sql3 = ("UPDATE hest SET besk='" . $_POST["infoField"]."' WHERE stallID = '{$_POST['hastID']}'" or die ("Error: " . mysql_error());
echo ("$sql3");)
vilket ser fel ut...
men då blev echo:
UPDATE hest SET besk='Jag har ...o.s.v. ' WHERE stallID = '2'
Men inget händer i databasen och inget annat fel skrivs ut.
Jag har inte ändrat något annat i koden som aasah visade högre upp.
Vad har jag missat? :(
Du har tappat en väsentlig bit... Tantens kod:
$sql3 = ("UPDATE hest SET besk='" . $_POST["infoField"]."' WHERE stallID = '{$_POST['hastID']}'" or die ("Error: " . mysql_error());
echo ("$sql3");)
$sql3 är/borde vara en sträng med ett SQL-anrop. Men som su skriver försöker du tilldela den resultatet av att ha kört strängen i databasen! Ändra till:
$sql3 = "UPDATE hest SET besk='" . $_POST["infoField"]."' WHERE stallID = ".$_POST['hastID'];
$res = mysql_query($sql3) or die ("Error: " . mysql_error());
Observera också att stallID är en siffra. Siffror har inga '-fnuttar runt sig.
Åh tack så mycket... Du är en guldstjärna!