webForumDet fria alternativet

Uppdatera flera poster

PHP

5 svar · 444 visningar · startad av Dag_M

Medlem sedan dec. 20055 inlägg
Frågan#1

Jag har en adminsida för en FAQ där jag kan radera och svara på frågor.
Som den ser ut idag så finns en dropdown vid varje inlägg där jag väljer
om den ska raderas eller besvaras. Det jag skulle vilja ha är kryssrutor
vid varje post och endast 1 st radera/uppdatera knapp längst ner på sidan.
Är det någon som kan tipsa mig om hur jag ska göra.
Så här ser koden ut:

$query_select = "SELECT `id`,`question`,`answer`,`un`,`userid`,Createdate,DATE_FORMAT(Createdate,'%Y-%m-%d kl %H:%i') AS ViewCreatedate FROM faqs_unanswered order by id desc ";
$query_run = mysql_query($query_select);
$query_num_rows = mysql_num_rows($query_run);

if(!$query_num_rows) {
  print "Inga nya frågor att besvara.<br><br>";
} else {
if($query_num_rows == 1){
  echo '<b>'.$query_num_rows.'</b> Ny fråga';
} else {
  echo '<b>'.$query_num_rows.'</b> Nya frågor';
}
  while($_faqs = mysql_fetch_object($query_run)) {
     $Createdatum = $_faqs->ViewCreatedate;

?>
<form name="form1" method="post" action="send.php?post=answer">
<select size="1" name="drop">
<option selected value="add">Posta</option>
<option value="delete">Radera</option>
</select> 
postad av <B><? echo $_faqs->un ?></B> den <? echo $Createdatum ?><br>
<textarea name="question" rows="4" cols="50"><? echo $_faqs->question ?></textarea><br>
<textarea name="answer" rows="4" cols="50">Ditt svar</textarea><br>
<input name="Submit" type="submit" id="Submit" value="Skicka">
<input type="hidden" name="id" value="<? echo $_faqs->id ?>">
<input type="hidden" name="un" value="<? echo $_faqs->un ?>">
<input type="hidden" name="Createdate" value="<? echo $_faqs->Createdate ?>">
<input type="hidden" name="personid" value="<? echo $_faqs->userid ?>">
<input type="hidden" name="formaction" value="answerThem">
<br><br><br>
</form>

<?}}?>

Gott nytt år!!!

/Dag

Medlem sedan mars 20032 667 inlägg
#2

Exempel på radera flera:

Så här döper du formulärfälten. Alla checkboxar ska heta samma:

name="id[]"

Och då har du radens id/räknare som value.

Gör om resultatet en aning:

$postId = implode(",", $_POST['id']);

Radera alla som var ikryssade:

delete from tabellen where id in (" . $postId . ")
Medlem sedan dec. 20055 inlägg
#3

Ett stort tack för svaret, men jag hänger inte med riktigt. Jag skulle vilja ha en kryssruta som jag bockar i om jag vill radera, eller så skriver jag ett svar i formuläret. Det kan vara ganska många poster och jag skulle vilja få allt gjort på samma gång.

Medlem sedan mars 20034 471 inlägg
#4

Dag_M skrev:

Ett stort tack för svaret, men jag hänger inte med riktigt. Jag skulle vilja ha en kryssruta som jag bockar i om jag vill radera, eller så skriver jag ett svar i formuläret. Det kan vara ganska många poster och jag skulle vilja få allt gjort på samma gång.

Om varje post har ett unikt ID som finns i $id, kand du göra på följande sätt:

<form name="form1" method="post" action="send.php?post=answer"> 
"<INPUT TYPE=CHECKBOX NAME=\"Del-$id\" VALUE=1 >Delete"
"<INPUT TYPE=CHECKBOX NAME=\"Add-$id\" VALUE=1 >Add"
postad av <B><? echo $_faqs->un ?></B> den <? echo $Createdatum ?><br> 
.... 
</form>
<?php
//Ta hand om det i foreach eller while-slinga för alla $id
if (isSet($_POST["Del-$id"]) && isSet($_POST["Add-$id"]))
  echo "Make upp your mind please...";
elseif (isSet($_POST["Del-$id"])) 
   //Delete it
elseif (isSet($_POST["Add-$id"])) 
   //Add it
else echo "Nothing chosen..."; 
?>

Ev kan du använda JS till att se till att båda checkboxarna ej kan kryssas i samtidigt. Om du inte vill använda RADIO istället, vilket kanske vore smidigare.

Red: Glömde texten vid Checkboxarna.

Medlem sedan jan. 2005110 inlägg
#5

Här är en annan lösning:

Du har en <iframe> för varje inlägg, och i denna iframen har du allt som behövs för att uppdatera ett inlägg - en select eller radio för att välja radera/svara, sjävla textarean samt submitknapp.

Det kommer att se ut precis som din gamla lösning, men här kommer det fina: När du klickar på submitknappen för ett inlägg, kommer enbart själva iframen att skickas och laddas om. Samtidigt som den gör det, kan du fortsätta att svar på nästa inlägg.

Som sagt, det är inte riktigt vad du sökte, men kanske kan vara ett alternativ?

Medlem sedan dec. 20055 inlägg
#6

Jag tackar så mycket för svaren men vet inte riktigt hur jag ska lösa detta..
Som det ser ut idag så har jag över 2000 obesvarade frågor. Detta var till en början bara en liten test men efter hand så visade det sig att det var en bra pryl. Nu är det besvärligt att svara på frågorna då man måste ta en i taget och det jag vill är att lista upp ca 25 st frågor och kunna besvara alla dom på en gång. På formulärsidan som jag har idag så finns 3 fält för varje post samt en submit.
1 = dropdown med valet addera eller radera.
2 = fråga
3 = svar.
Submitknappen vill jag ha sist på sidan.

Jag är inne lite på vad "aasah" har föreslagit men har inte riktigt fattat hur jag ska göra.

263 ms totalt · 4 externa anrop · v20260731065814-full.2f471f9e
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)