Veld uit SQL in $_POST

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

PHP er

PHP er

30/09/2015 21:55:38
Quote Anchor link
Hallo,

Ik vroeg mij af of het mogelijk is om een veld uit de SQL als naam van de $_POST te gebruiken.

Voorbeeldje:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
$answered = "quest_".$answer_fill['i']."";
$myanswer = $_POST['$answered'];


Ik hoop dat iemand mij kan helpen.
 
PHP hulp

PHP hulp

28/03/2024 15:01:51
 
- Ariën  -
Beheerder

- Ariën -

30/09/2015 22:01:32
Quote Anchor link
Ja, dat kan, maar waarom zou iemand in een formulier de veldnaam mogen bepalen?
 
Frank Nietbelangrijk

Frank Nietbelangrijk

30/09/2015 22:02:39
Quote Anchor link
Al heb ik enige moeite om je vraag te begrijpen zal het antwoord wel JA zijn. Alleen horen die quotes daar niet op regel 2. en . "" heeft geen enkele zin op regel 1

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$answered
= "quest_" . $answer_fill['i'];
$myanswer = $_POST[$answered];
?>


Verder moet je altijd eerst kijken of een POST variabele wel bestaat:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
if(isset($_POST[$answered])) {
    $myanswer = $_POST[$answered];
}
else {
    // bestaat niet doe iets anders
}
?>
 
PHP er

PHP er

01/10/2015 10:36:29
Quote Anchor link
Frank Nietbelangrijk op 30/09/2015 22:02:39:
Al heb ik enige moeite om je vraag te begrijpen zal het antwoord wel JA zijn. Alleen horen die quotes daar niet op regel 2. en . "" heeft geen enkele zin op regel 1

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$answered
= "quest_" . $answer_fill['i'];
$myanswer = $_POST[$answered];
?>


Verder moet je altijd eerst kijken of een POST variabele wel bestaat:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
if(isset($_POST[$answered])) {
    $myanswer = $_POST[$answered];
}
else {
    // bestaat niet doe iets anders
}
?>


Hey Frank, dank voor je antwoord! Heb het even getest maar het werkt nog niet optimaal. Middels een echo op de pagina heb ik vervolgens getest of $answered en $myanswer bestonden, nu bestond $answered wel en bij $myanswer kreeg ik geen gehoor.

Weet jij hoe dat kan?

Dit is het stukje code van hoe ik de namen van de velden uit de db haal:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
                                                <input type="radio" name="quest_<? echo $survey_quests['id']; ?>" value="<? echo $answers['id']; ?>"><? echo $answers['answer']; ?>


quest_(hierdeid) bestaat dus wel, maar hij pakt'm niet op de een of andere reden..

Toevoeging op 01/10/2015 10:46:10:

- Aar - op 30/09/2015 22:01:32:
Ja, dat kan, maar waarom zou iemand in een formulier de veldnaam mogen bepalen?


wordt bepaald vanuit de database op basis van welke vraag er is gesteld, dat veld van het antwoord pakt hij (vraag id 1, dus quest_1 van het veld wat nodig is om het antwoord in de db te zetten)
Gewijzigd op 02/10/2015 10:04:10 door PHP er
 
Frank Nietbelangrijk

Frank Nietbelangrijk

02/10/2015 10:19:38
Quote Anchor link
Ik denk dat je dan toch even iets meer moet vertellen over hetgeen je wilt maken en/of wat meer code zou moeten laten zien. Nog even voor de duidelijkheid:

Als ik een pagina maak met een formulier die het formulier naar zichzelf toe POST dan kan deze pagina op twee verschillende manieren aangeroepen worden:

a) in de (normale) GET methode. (er is nog niet op verzenden geklikt)
b) in de POST methode.

Indien er nu de POST methode gebruikt wordt dan zullen er $_POST variabelen bestaan. Als de pagina echter in de GET methode wordt aangeroepen dan is de $_POST array helemaal leeg en zal dus ook een $_POST['whatever'] nooit bestaan.

In de praktijk los je dat op door twee dingen te doen.

a) initialiseer je variabelen en geef ze een "default value" ofwel een beginwaarde.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php

// initialisatie
$name = '';
$email = '';

?>

b) controleer in welke methode de pagina aangeroepen is en indien dat in de POST methode is overschrijf je variabelen dan met de waarde in de $_POST array

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php

// initialisatie
$name = '';
$email = '';

if($_SERVER['REQUEST_METHOD' == 'POST')
{

    $name = trim($_POST['name']);
    $email = trim($_POST['email']);
}


// en hier bestaan de variabelen $name en $email altijd en krijgen we dus geen foutmeldingen meer :)

?>
Gewijzigd op 02/10/2015 10:22:35 door Frank Nietbelangrijk
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.