Hallo allemaal,

Vraagje

Ik heb een nieuwssysteempje, deze werkt prima.

Nu heb ik het volgende:

Ik heb een overzicht gemaakt (wat me hoofdmenu voor me nieuws word)
Oorspronkelijk moet je naar een andere pagina om nieuws te bewerken.
Dan krijg je weer een overzicht met achter elk nieuwsbericht een bewerk link.
Dit wil ik veranderen.
Ik zou graag in mijn overzicht pagina checkboxen voor elk nieuwsberichtje.
Als je er dan een aanvinkt dat je met 1 bewerkknop (die zit nu bovenin) het desbetreffende bericht kan bewerken.

Ik heb begrepen dat ik de checkboxen een id moet geven.
Maar hoe zorg ik dan dat de knop gaat werken ?

Dit is het stukje script waar het om gaat:

Me checkbox:

<td width=\"15px\"><input name=\"selectie\" type=\"checkbox\" value=\"selecteer\" id=\".htmlspecialchars($gegevens[id]).\" /></td>

(het id wat ik gegeven heb klopt volgens mij ook niet (iig de wijze waarop ik hem aangeef)

En dit de link:

<a href="index.php?set=nieuws&p=nieuws_bewerk&id=<?php htmlspecialchars($gegevens[id]) ?>"><img src="images/submenu/bewerk.png" width="34" height="29" alt="Verwijder" border="0" /> Bewerk</a>

Maar zoiezo gaat die volgens mij niet werken.

Alles loop via een database.

Iemand een idee ?
Nou, als je die tutorials kent, dan zou je toch zien dat die code hierboven niet heel lekker is....
Nogmaals, voor mij is dit ook een leerproces, omdat je wat tuts gelezen hebt (snap ik zelf nl ook wel) betekent niet meteen dat je kan phpen.... zoals het hier wel naar boven komt.

Ik vraag hier een beetje hulp, om me kennis en ervaring op te doen.

ik wil zoiezo de gehele code gaan doorlopen en "lekkerder" maken.
Maar wat ik zei, dit is voor mij gewoon een leer projectje.

En uit die tuts die jij me bijvoorbeeld gaf zitten basis elementen in en gaat er niet uitgebreid op door.....

//edit:

Al met al heb ik nog geen antwoord op mijn vraag......
Ik denk dat dit moet werken:

<?php

if(is_numeric($_GET['max'])) $max = $_GET['max']; 
if(is_numeric($_GET['start'])) $start = $_GET['start']; 

if (empty($max)) $max = 5;  
if (empty($start)) $start = 0; 

$end = $start + $max;   
$prev = $start - $max;  
$next = $end;   
 
$query = mysql_query("SELECT id,datum,bericht,titel FROM nieuws ORDER BY id DESC LIMIT $start, $max") or die (mysql_error()); 

$num = mysql_num_rows($query); 

if (empty($num)) 
{ 
   echo "<p>Er zijn geen nieuwsberichten.</p>";
}
else 
{ 
 echo "<table border=\"0px\" width=\"100%\" margin=\"o\" bgcolor=\"#dbdbdb\" >
           <tr>
            <td width=\"15px\"><input name=\"selectie\" type=\"checkbox\" value=\"selecteer\" /></td>
            <td width=\"200px\">Datum:</td>
            <td width=\"250px\">Titel:</td>
            <td>Bericht:</td>
          </tr>";
  while ($result = mysql_fetch_array($query)) {
     echo '<tr>
	 <td width="15px"><input name="selectie" type="checkbox[]" value="'.$result["id"].'" /></td>
    <td width="200px"><span style="color:#000000;" ><font size="3" font color="#000000">'.$result["datum"].'</span></font></td>
    <td width="250px">'.$result["titel"].'</td>
    <td>'.$result["bericht].'</td>
    </tr>';
    } 
echo '</table>';
  }
?> 
Super, dank je !

Weer een stap verder,

Nu geeft ie in ieder geval geen error meer.
Maar nu ziet me lijstje er zo uit:

Datum: Titel: Bericht:
$result["datum"] $result["titel"] $result["bericht]
$result["datum"] $result["titel"] $result["bericht]
$result["datum"] $result["titel"] $result["bericht]
$result["datum"] $result["titel"] $result["bericht]
$result["datum"] $result["titel"] $result["bericht]

Hij neemt het dus letterlijk over ipv dat hij de data ophaalt.....
Plus dat me checkboxen nu heel lang zijn en je er nu text in kan voeren....

Iig een stap verder, kan alleen nu niet testen of de link ook werkt.....

// edit:

En mag ik je vragen waarom je bij het eerste stukje tabel de echo in dubbel quotes doet en het 2de stukje niet ?
Ik had hiervoor ook wat problemen maar er zit een verschil in opbouw dan toch ?

//edit2:

Ik heb de data op kunnen halen uit de database. Er zat een foutje in het script.

$result["datum"]

moest:

'.$result["datum"].'

worden.

Nu heb ik alleen nog een foutje met me checkbox.
Het ligt em waarschijnlijk aan de type die ik em meegeef nl: type="checkbox[]"

Hij geeft nu nl (zoals het lijkt) een text area weer... het ID staat er wel in, maar niet een checkboxje.....

Als ik hem verander in simpelweg checkbox dan is het opgelost, maar waarschijnlijk moet dat toch op een of andere manier anders.

Zit ik ook meteen met het volgende:

Er wordt aangegeven dat ik een link als deze moet maken om het werkende te krijgen:

<a href="index.php?set=nieuws&p=nieuws_bewerk&id=<?php echo $show["id"] ?>"><img src="images/submenu/bewerk.png" width="34" height="29" alt="Verwijder" border="0" /> Bewerk</a>


Ik heb het idee dat $show dan $result moet worden maar dan werkt het nog niet....

hoe zorg ik nou dat de link weet welke checkbox er aangevinkt is ?
Probeer dit eens:


<?php

if(is_numeric($_GET['max'])) $max = $_GET['max']; 
if(is_numeric($_GET['start'])) $start = $_GET['start']; 

if (empty($max)) $max = 5;  
if (empty($start)) $start = 0; 

$end = $start + $max;   
$prev = $start - $max;  
$next = $end;   
 
$query = mysql_query("SELECT id,datum,bericht,titel FROM nieuws ORDER BY id DESC LIMIT $start, $max") or die (mysql_error()); 

$num = mysql_num_rows($query); 

if (empty($num)) 
{ 
   echo "<p>Er zijn geen nieuwsberichten.</p>";
}
else 
{ 
 echo "<form name=\"bewerk\" action=\"index.php?set=nieuws&p=nieuws_bewerk\" method=\"GET\"><table border=\"0px\" width=\"100%\" margin=\"o\" bgcolor=\"#dbdbdb\" >
           <tr>
            <td width=\"15px\"><input name=\"selectie\" type=\"checkbox\" value=\"selecteer\" /></td>
            <td width=\"200px\">Datum:</td>
            <td width=\"250px\">Titel:</td>
            <td>Bericht:</td>
          </tr>";
  while ($result = mysql_fetch_array($query)) {
     echo '<tr><td width="15px"><input name="selectie" type="checkbox" name="id" value="'.$result["id"].'" /></td>
    <td width="200px"><span style="color:#000000;" ><font size="3" font color="#000000">'.$result["datum"].'</span></font></td>
    <td width="250px">'.$result["titel"].'</td>
    <td>'.$result["bericht"].'</td>
	</tr>';
    } 
echo '</table><br /><a href="#" onClick="bewerk.submit();"><img src="images/submenu/bewerk.png" width="34" height="29" alt="Verwijder" border="0" /> Bewerk</a>';
  }
?> 
Dit werkt niet......
Op een of andere manier gaat ie naar de startpagina.

Zat te denken de volledige link te geven maar dan zit ik nog met het id die hij mee moet geven.....

Een andere oplossing ?
Heb je msn?

Zal ik je via daar even helpen en direct uitleggen waarom je niet weet hoe deze functies werken.

Zoja stuur me maar even een bericht.

Mvg,

Tim Kampherbeek
@ Thijn,

Zou dit niet eventueel met Javascript moeten ?

Gelieve Niet Bumpen:

Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de knop om je tekst aan te passen.

SanThe.


Sorry, vergeten ;)

Ik heb ondertussen het script aangepast, met tips van andere.
Er zit nog een foutje in.
Heb nu het deel voor het verwijderen gemaakt.
Maar hij verwijderd niets, laad alleen de pagina opnieuw......

Hier het scriptje:



<link rel="stylesheet" href="../../css/admin_style.css" type="text/css" />
<div class="submenu">
<div class="submenu_links">
<img src="images/submenu/nieuwsplaatje.png" width="40" height="40" alt="Nieuws" /><img src="images/submenu/text_admin_nieuws.png" width="166" height="40" alt="text" /></div>
<div class="submenu_rechts">
<div class="nieuw"><a href="index.php?set=nieuws&p=nieuws_nieuw"><img src="images/submenu/nieuw.png" width="34" height="29" alt="Nieuw" border="0" /><br />
Nieuw</a></div>
<div class="bewerk"><a href="#" onClick="document.getElementById('method').value = 'Edit', document.bewerk.submit();"><img src="images/submenu/bewerk.png" width="34" height="29" alt="Verwijder" border="0" /> Bewerk</a></div>
<div class="verwijder"><a href="#" onClick="document.getElementById('method').value = 'Del', document.bewerk.submit();"><img src="images/submenu/verwijder.png" width="34" height="40" alt="Verwijder" /></a></div>
<div class="annuleer"><a href="index.php?set=nieuws&p=nieuws"><img src="images/submenu/annuleer.png" width="41" height="29" alt="Annuleer" border="0" />
Annuleer</a></div>
</div>
</div>
<div class="inhoud_div">
<div class="uitlijning" align="left">
<?php
if ( isset($_POST['method']) && isset($_POST['edit']) ) {
  $method = addslashes($_POST['method']);
  if ( $method == 'Del' ) {
    $done = implode(',', $_POST['edit']);
    
    mysql_query ( "DELETE FROM nieuws WHERE id IN ($done)" );
    echo '<META http-equiv="refresh" content="0; URL='.$_SERVER['REQUEST_URI'].'">';
  }
  echo 'Verwijderen';
}
    
if(is_numeric($_GET['max'])) $max = $_GET['max']; 
if(is_numeric($_GET['start'])) $start = $_GET['start']; 

if (empty($max)) $max = 5;  
if (empty($start)) $start = 0; 

$end = $start + $max;   
$prev = $start - $max;  
$next = $end;   
 
$query = mysql_query("SELECT id,datum,bericht,titel FROM nieuws ORDER BY id DESC LIMIT $start, $max") or die (mysql_error()); 

$num = mysql_num_rows($query); 

if (empty($num)) 
{ ?>
  <p>Er zijn geen nieuwsberichten.</p>
<?php }
else 
{ ?>
  <form name="bewerk" action="" method="POST" id="bewerk">
    <input type="hidden" name="method" id="method" value="0">
    <table border="0px" width="100%" margin="o" bgcolor="#dbdbdb" >
           <tr>
            <td width="15px"><input name="selectie" type="checkbox" value="selecteer" /></td>
            <td width="200px">Datum:</td>
            <td width="250px">Titel:</td>
            <td>Bericht:</td>
          </tr>
          <?php
          while ($result = mysql_fetch_array($query)) { ?>
            <tr>
              <td width="15px"><input name="selectie" type="checkbox" name="edit[]" value="<?php echo $result["id"]; ?>" id="<?php echo $result["id"]; ?>" /></td>
              <td width="200px"><span style="color:#000000;" ><font size="3" color="#000000"><?php echo $result["datum"]; ?></span></font></td>
              <td width="250px"><?php echo $result["titel"]; ?></td>
              <td><?php echo $result["bericht"]; ?></td>
            </tr>
          <?php
          }
          ?>
    </table>
  </form>
  <?php
  }
?> 
</div>
<div class="infobox"></div>
 </div>


Bovenin staat de link verwijderen...

Iemand een idee waar het fout gaat ?
Ik denk dat het aan de action ligt in het form.

Probeer dit eens:

<link rel="stylesheet" href="../../css/admin_style.css" type="text/css" />
<div class="submenu">
<div class="submenu_links">
<img src="images/submenu/nieuwsplaatje.png" width="40" height="40" alt="Nieuws" /><img src="images/submenu/text_admin_nieuws.png" width="166" height="40" alt="text" /></div>
<div class="submenu_rechts">
<div class="nieuw"><a href="index.php?set=nieuws&p=nieuws_nieuw"><img src="images/submenu/nieuw.png" width="34" height="29" alt="Nieuw" border="0" /><br />
Nieuw</a></div>
<div class="bewerk"><a href="#" onClick="document.getElementById('method').value = 'Edit', document.bewerk.submit();"><img src="images/submenu/bewerk.png" width="34" height="29" alt="Verwijder" border="0" /> Bewerk</a></div>
<div class="verwijder"><a href="#" onClick="document.getElementById('method').value = 'Del', document.bewerk.submit();"><img src="images/submenu/verwijder.png" width="34" height="40" alt="Verwijder" /></a></div>
<div class="annuleer"><a href="index.php?set=nieuws&p=nieuws"><img src="images/submenu/annuleer.png" width="41" height="29" alt="Annuleer" border="0" />
Annuleer</a></div>
</div>
</div>
<div class="inhoud_div">
<div class="uitlijning" align="left">
<?php
if ( isset($_POST['method']) && isset($_POST['edit']) ) {
  $method = addslashes($_POST['method']);
  if ( $method == 'Del' ) {
    $done = implode(',', $_POST['edit']);
    
    mysql_query ( "DELETE FROM nieuws WHERE id IN ($done)" );
    echo '<META http-equiv="refresh" content="0; URL='.$_SERVER['REQUEST_URI'].'">';
  }
  echo 'Verwijderen';
}
    
if(is_numeric($_GET['max'])) $max = $_GET['max']; 
if(is_numeric($_GET['start'])) $start = $_GET['start']; 

if (empty($max)) $max = 5;  
if (empty($start)) $start = 0; 

$end = $start + $max;   
$prev = $start - $max;  
$next = $end;   
 
$query = mysql_query("SELECT id,datum,bericht,titel FROM nieuws ORDER BY id DESC LIMIT $start, $max") or die (mysql_error()); 

$num = mysql_num_rows($query); 

if (empty($num)) 
{ ?>
  <p>Er zijn geen nieuwsberichten.</p>
<?php }
else 
{ ?>
  <form name="bewerk" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST" id="bewerk">
    <input type="hidden" name="method" id="method" value="0">
    <table border="0px" width="100%" margin="o" bgcolor="#dbdbdb" >
           <tr>
            <td width="15px"><input name="selectie" type="checkbox" value="selecteer" /></td>
            <td width="200px">Datum:</td>
            <td width="250px">Titel:</td>
            <td>Bericht:</td>
          </tr>
          <?php
          while ($result = mysql_fetch_array($query)) { ?>
            <tr>
              <td width="15px"><input name="selectie" type="checkbox" name="edit[]" value="<?php echo $result["id"]; ?>" id="<?php echo $result["id"]; ?>" /></td>
              <td width="200px"><span style="color:#000000;" ><font size="3" color="#000000"><?php echo $result["datum"]; ?></span></font></td>
              <td width="250px"><?php echo $result["titel"]; ?></td>
              <td><?php echo $result["bericht"]; ?></td>
            </tr>
          <?php
          }
          ?>
    </table>
  </form>
  <?php
  }
?> 
</div>
<div class="infobox"></div>
 </div> 

Reageren