PDA

Volledige versie bekijken : form action uit een $variable halen?


tanab
%Europe/Berlin %905 %2009, 22:44
Hallo iedereen,

Ik ben bezig met een PHP forum bouwen. Dit forum bevat ook een CMS nu is het voor mij zaak dat alle acties die worden uitgevoerd intern blijven... Dus ik wil geen form actions die andere php bestanden erbij moeten halen...

ik heb het volgende stukje CODE:

<?php
$delete_topic_action = "
$delstr = $_POST['delstr'];
$topic_del = 'DELETE FROM topic WHERE id= $delstr';
$reply_del = 'DELETE FROM reply WHERE topic_id= $delstr';
mysql_connect('*****','*******','*******');
mysql_select_db('***************');
mysql_query( $topic_del );
mysql_query( $reply_del );
mysql_close();";
$form_delete_topic = "
<form id='form1' name='delete_topic' method='post' action='".$delete_topic_action."'>
<label>
Verwijder Topic met ID:<br />
<input type='text' name='delstr' id='textfield' />
</label>
<br />
<label>
<input type='submit' name='ok' id='ok' value='OK' />
</label>
</form>";

echo $forum_delete_topic;

?>
Dit stukje code werkt uiteraard niet maar ik heb geen idee hoe ik dit moet bereiken misschien dat jullie me kunnen helpen.
ik kreeg de hele tijd een error omtrend de regel:

$delstr = $_POST['delstr'];
</span>

023-jimmy
%Europe/Berlin %927 %2009, 23:15
Waarom zet je in godsnaam een heel stuk php wat iets moet gaan berekenen/verwerken binnen een variabele? Ik snap wat je wilt bereiken, maar dit is niet de manier om het te doen. Je moet de code in dit geval binnen een functie zetten en deze dan uitvoeren, als volgt:


// De functie
function delete_topic_action($delstr){
mysql_connect('*****','*******','*******');
mysql_select_db('***************');
mysql_query("DELETE FROM `topic` WHERE `id` = '". $delstr ."' ");
mysql_query("DELETE FROM `reply` WHERE `topic_id` = '". $delstr ."' ");
mysql_close();
}

// Het aanroepen van de functie
delete_topic_action($_POST['delstr']);

tanab
%Europe/Berlin %930 %2009, 23:19
Bedankt voor je reactie....
ik wist dat dat niet ging werken vandaar me topic.

en die functie kan ik gewoon oproepen binnen een form dus iets als dit:


"<form id='form1' name='delete_topic' method='post' action='".delete_topic_action($_POST['delstr'])."'>"

023-jimmy
%Europe/Berlin %963 %2009, 00:07
Uhm, nee. Zet helemaal bovenaan de pagina:


function delete_topic_action($delstr){
mysql_connect('*****','*******','*******');
mysql_select_db('***************');
mysql_query("DELETE FROM `topic` WHERE `id` = '". $delstr ."' ");
mysql_query("DELETE FROM `reply` WHERE `topic_id` = '". $delstr ."' ");

mysql_close();
}

if(isset($_POST['delstr'])){
delete_topic_action($_POST['delstr']);
}


In de action verwijs je gewoon naar de pagina waar dit op staat.

tanab
%Europe/Berlin %682 %2009, 17:22
Ok thnx man!
Ik ga er even mee goochelen ^^

groet toby