dropdown value in databank?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Shana vermeiren

shana vermeiren

18/05/2011 11:12:35
Quote Anchor link
Hoi

ik maak ene applicatie en jongeren moeten uit een dopdownlijst een probleem kiezen
vb "drugs" of "liefde".

Nu wil ik dat als ze een keuze maken en op verzend klikken, dat de waarde "drugs" bijvoorbeeld in de database komt onder het veldje "probleem".

Hoe kan ik dit het beste doen?
het is nogal dringend

alvast bedankt voor de hulp!!
 
PHP hulp

PHP hulp

22/05/2024 02:17:51
 
Arjan -

Arjan -

18/05/2011 11:14:28
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$sql
= mysql_query("INSERT INTO tabel (probleem) VALUES ('".mysql_real_escape_string($_POST['probleem'])."')");
?>
Gewijzigd op 18/05/2011 11:14:49 door Arjan -
 
Shana vermeiren

shana vermeiren

18/05/2011 11:17:04
Quote Anchor link
bedankt voor de snelle reactie, maar hoe maak ik een post van de waarde van een dropdown?

Toevoeging op 18/05/2011 11:20:29:

dit is de code van de dropdown

<div id="comments">
<form method="post" action="filter.php">
<select name="selectlist">
<option value="zelfmoord">Zelfmoord</option>
<option value="ouders">Ouders</option>
<option value="school">School</option>
<option value="drugs">Drugs</option>
<option value="alcohol">Alcohol</option>
<option value="liefde">Liefde</option>
<option value="zwanger">Zwanger</option>
</select>
<input type="submit" id="sendbtn" value="Verzend" class="button" onclick="sendValue();">
</form>
</div>


dit is de functie sendValue()

<script language="javascript">
function sendValue()
{
var text = escape(document.getElementById('commenttext').value);
window.location.href='filter.php?commenttext='+text;
}
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$sql
= mysql_query("INSERT INTO tblusers (probleem) VALUES ('".mysql_real_escape_string($_POST['text'])."')");
?>

</script>

het lijkt mij wel raar om php met js te combineren, maar ik zou niet weten hoe ik het anders moet aanpakken
 
Arjan -

Arjan -

18/05/2011 11:22:35
Quote Anchor link
Zet in je filter.php het volgende:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
if(isset($_GET['commenttext']) AND trim($_GET['commenttext']) != '') {

$sql = mysql_query("INSERT INTO tblusers (probleem) VALUES ('".mysql_real_escape_string($_GET['commenttext'])."')");

}

?>
 
Shana vermeiren

shana vermeiren

18/05/2011 11:25:14
Quote Anchor link
heb het erin gezet en er komt niets in het veldje probleem te staan in de databank
 
Arjan -

Arjan -

18/05/2011 11:44:14
Quote Anchor link
Databasetabel / -velden juist? Word je doorverwerzen naar filter.php?commenttext=... ? En komt achter commenttext in de adressenbalk de juiste waarde te staan? Zo ja, welke waarde?
 
Erik van de Locht

Erik van de Locht

18/05/2011 11:44:32
Quote Anchor link
Arjan gebruikt in zijn voorbeeld de superglobal _GET. De methode die je in je formulier aangeeft is POST.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$commenttext
= trim($_POST['commenttext']);
if ($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($commenttext)) {
  $sql = 'INSERT INTO tblusers (probleem) VALUES ("'.mysql_real_escape_string($commenttext).'")';
  if (mysql_query($sql)) {
    // Opgeslagen
    echo 'Opgeslagen';
  }
else {
    // Opslaan mislukt
    echo 'Opslaan mislukt';
  }
}

?>


Ik werk niet in je omgeving dus ik kan me er niet helemaal goed in orienteren, maar zo iets als ik hier boven heb staan zal het ongeveer worden. Zit ook een beetje foutafhandeling in, niet geheel onbelangrijk ;) Anders krijg je een blanco pagina te zien en weet je niet of het wel of niet gelukt is. Zorg overigens wel dat je van tevoren een database connectie hebt!

Erik
Gewijzigd op 18/05/2011 11:45:47 door Erik van de Locht
 
Arjan -

Arjan -

18/05/2011 11:45:49
Quote Anchor link
Ja dat is bewust gedaan, want ze heeft een javascript code waarin de waarde van de selectbox wordt toegevoegd aan de get variabele commenttext.

Gezien de beperkte kennis van de TS ga ik mij niet wagen aan het aanleren van foutafhandeling. Maar het is inderdaad niet onbelangrijk.
Gewijzigd op 18/05/2011 11:47:56 door Arjan -
 
Erik van de Locht

Erik van de Locht

18/05/2011 11:47:48
Quote Anchor link
Oke, dat heb ik over het hoofd gezien. Maar dan nog is het inderdaad een beetje de vraag: wat heeft voorrang? De onclick die je door stuurt naar een pagina met variabelen in de URL (GET) of de submitknop-werking van het formulier (POST).

Edit: Ik gok dat het probleem zit in het feit dat je geen database connectie hebt ;)

Edit2: Je geeft aan dat je het raar vind om JS met PHP de combineren op de manier zoals je het nu doet. Het is inderdaad een beetje omslachtig, want je hebt javascript helemaal niet nodig. Zo lang je als form method 'post' aan geeft, stuurt de submit knop je naar de gespecificeerde action=''. De variabelen van het formulier (b.v. veldnaam 'commenttext') is dan beschikbaar onder $_POST['commenttext'].
Gewijzigd op 18/05/2011 11:54:18 door Erik van de Locht
 
Arjan -

Arjan -

18/05/2011 11:51:49
Quote Anchor link
Beter is om de javascript geheel te verwijderen, want heeft in dit geval geen toegevoegde waarde.

Dus zo:

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
<div id="comments">
<form method="post" action="filter.php">
<select name="probleem">
<option value="zelfmoord">Zelfmoord</option>
<option value="ouders">Ouders</option>
<option value="school">School</option>
<option value="drugs">Drugs</option>
<option value="alcohol">Alcohol</option>
<option value="liefde">Liefde</option>
<option value="zwanger">Zwanger</option>
</select>
<input type="submit" id="sendbtn" value="Verzend" class="button">
</form>
</div>


En in filter.php:

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
16
17
18
<?php

// MYSQL CONNECTIE !!!

if ($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($probleem)) {

$probleem = trim($_POST['probleem']);

  $sql = mysql_query("INSERT INTO tblusers (probleem) VALUES ('".mysql_real_escape_string($probleem)."')";
  if ($sql) {
    // Opgeslagen
    echo 'Opgeslagen';
  }
else {
    // Opslaan mislukt
    echo 'Opslaan mislukt';
  }
}

?>

(code van Erik)

Erik van de Locht op 18/05/2011 11:47:48:
Edit: Ik gok dat het probleem zit in het feit dat je geen database connectie hebt ;)

Dat is natuurlijk wel handig ja. En daarom ga ik geen moeite doen om foutafhandeling aan te leren.... :)
Gewijzigd op 18/05/2011 11:54:55 door Arjan -
 
Shana vermeiren

shana vermeiren

18/05/2011 12:28:51
Quote Anchor link
Ik heb het probleem ontdekt
Mijn sessies zaten niet volledig juist, en daarom vult hij overal hetzelfde "probleem" in in de databank
 



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.