while loop met select en hidden veld.
Ik zit met een klein probleempje
ik heb deze code
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php include("includes/connect.php"); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<form method="post" action="https://www.onebip.com/otms/">
<table width="100%">
<tr>
<td><input type="text" name="item_name" value="raventh" /></td>
<td><select name='price'>
<?php
//Donatie punten uit de tabel onebip halen//
//Let wel op wel een eigen query gebruiken dit ivm ik gebruik geen mssql maar mysql. het principe blijft hetzelfde.//
$sql = "SELECT * FROM onebip";
if(!$result = $mysqli->query($sql))
{
echo 'fout'; //Fout afhandeling
}
else
{
//doorgaan als er geen fout is
while ($row = $result->fetch_assoc())
{
echo '<option value="'.$row['price'].'">"'.$row['tekst'].'"</option>';
}
}
?>
</select></td>
<td><input type='image' name='submit' src='http://www.onebip.com/tools/bts/btn06.gif' alt='Pay with Onebip' border='0'/></td>
</tr>
</table>
<input type="hidden" name="description" value="*****" />
<input type="hidden" name="username" value="*******" />
<input type="hidden" name="currency" value="USD" />
<input type="hidden" name="command" value="standard_pay" />
<input type="hidden" name="custom[naam]" value="<?php echo $_SESSION['account']; ?>" />
<input type="hidden" name="custom[points]" value="?????" />
<input type="hidden" name="return_url" value="http://localhost/pay.php" />
<input type="hidden" name="notify_url" value="http://apolloteam.cjb.net/notify.php" />
</form>
</body>
</html>
<?php echo var_dump($_GET); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<form method="post" action="https://www.onebip.com/otms/">
<table width="100%">
<tr>
<td><input type="text" name="item_name" value="raventh" /></td>
<td><select name='price'>
<?php
//Donatie punten uit de tabel onebip halen//
//Let wel op wel een eigen query gebruiken dit ivm ik gebruik geen mssql maar mysql. het principe blijft hetzelfde.//
$sql = "SELECT * FROM onebip";
if(!$result = $mysqli->query($sql))
{
echo 'fout'; //Fout afhandeling
}
else
{
//doorgaan als er geen fout is
while ($row = $result->fetch_assoc())
{
echo '<option value="'.$row['price'].'">"'.$row['tekst'].'"</option>';
}
}
?>
</select></td>
<td><input type='image' name='submit' src='http://www.onebip.com/tools/bts/btn06.gif' alt='Pay with Onebip' border='0'/></td>
</tr>
</table>
<input type="hidden" name="description" value="*****" />
<input type="hidden" name="username" value="*******" />
<input type="hidden" name="currency" value="USD" />
<input type="hidden" name="command" value="standard_pay" />
<input type="hidden" name="custom[naam]" value="<?php echo $_SESSION['account']; ?>" />
<input type="hidden" name="custom[points]" value="?????" />
<input type="hidden" name="return_url" value="http://localhost/pay.php" />
<input type="hidden" name="notify_url" value="http://apolloteam.cjb.net/notify.php" />
</form>
</body>
</html>
<?php echo var_dump($_GET); ?>
Maar mijn vraag is nu dit
als ik dus een select maak dan moet er bij deze regel
<input type="hidden" name="custom[points]" value="?????" />
het geselecteerde veld komen te staan.
Hoe kan ik dit doen?
Met vriendelijke groet,
Thomas de Vries.
Overigens zijn hidden / readonly / disabled inputs gewoon te wijzigen
Maar ja, zoiets kan je gewoon doen door een een javascriptje inelkaar te flansen.
En waarom quote je je tekst in de option
Gewijzigd op 29/04/2011 17:39:01 door Noppes Homeland
Die hidden velden zijn verplicht van oneblip
dus daar kan ik niks aan doen.
Sorry, maar dit gaat zo niet echt werken....
Wat je het beste kunt doen is eerst een goed ontwerp maken. PHP, HTML, SQL dwars door elkaar heen gooien leer je niet op een informatica opleiding, dus dat ga ik je nu ook niet adviseren.
Dus je begint eerst met het bedenken van een STRUCTUUR.
Dus hoe noem je je functies, classes, etc...
Hoe zet ik ze in m'n document, uitlijning, help...
Daarna begint je pas met ontwerpen.... en coderen dat doe je pas als aller laatste...
Vraag: Ga je elke file op de server apart beveiligen?
Het is handiger om maar 1 file bereikbaar te maken voor mensen van buiten af. Bijvoorbeeld: index.php in de ROOT map en de rest in de sub-mappen.
Tevens werkt deze oplossing als er een sub map bestaat die "includes/connect.php" bevat. Dus bij het slepen van het bestand na een andere map, en hij werkt al niet meer. Het is beter om robuste software te schrijven.
Dus iets van in de trend van:
$DBResult = New MYSQL_Query("SELECT * FROM onebip");
$Form = New HTML_Form("MyFormClass","https://www.onebip.com/otms/");
$Form->Add(New HTML_Form_Selection("price", $DBResult, "price", "tekst" ));
$Page = New HTML_WEBPAGE("Untitled Document", New HTML_STYLESHEET("Test.csv"));
$Page->Add($Form);
$Page->Render;
$Page->SaveToFile($Page->GUID & ".cache");
$Responce = New HTTP_RESPONCE("text/html");
$Responce->Add($Page);
$Responce->Send;
Dan is het teminste leesbaar....
Groeten: Lucifer
Toevoeging op 29/04/2011 18:14:03:
Wat ben je dan van plan bij het volgende formulier?
De code kopieeren en weer aanpassen?
Dit zal niet de laatste keer zijn dat je een FORM moet maken, dus je kunt het beter maar goed oplossen. Ben je er meteen vooraltijd van af....
Groeten en suc6 er mee...
Ps: Scripters werken van boven naar onder.... Nerds hebben gravitatie kracht niet nodig om werkende software te maken !
die <input usernam="****" is voor de username hoeft niet publiekelijk worden gemaakt.
En voor de volgende pagina heeft de gebruiker geen zicht op dat is de controle pagina als de betaling succes is verlopen.
Dat gebeurt allemaal door onebip.
Ik moet alleen het verhaal wat ik hierboven heb staan gemaakt te hebben.
en zoals jij dat doet dan moet ik helemaal van voor af aan gaan beginnen met leren
en ben ik weer een paar maand verder.
Als je de geselecteerde waarde naar onebip wilt sturen, waarom noem je de <select> dan niet gewoon custom[points] ... ? Dan kan je het hidden veld weggooien. Onebip kan niet zien of data uit een select of uit een hidden input wordt gepost ...
omdat die select de price bevat dit is een verpichting van hun kant uit.
dus ik moet ergens de price laten weergeven.
// met jQuery
$('select[name="price"]').bind('change', function() {
$('input[name="custom[points]"]').attr("value", $(this).val());
});
Gewijzigd op 29/04/2011 23:55:12 door Daniel O
moet worden omgezet naar punten in de input vield.
bijvoorbeeld
als je de eerste selecteert dan moet ie automatisch naar de input veld de
juiste aantal punten doen.
bijvoorbeeld als dit form
<form method="post" action="https://onbip.com/ots/">
<select name="price">
<option value="250">22 punten voor 2.50</option>
<option value="500">45 punten voor 5.00</option>
</select>
dan moet er met javascript een if else constructie komen. net zoals met php.
if(value = 250)
{
$punten = 22;
}
dan in de input veld komt dan dit
<input type="text" name="points" value="$punten" />
Maar dan dus met javascript omdat die doorgaat naar onebip en onebip stuurt het door naar mijn control script.
</form>
Geef dan die punten mee als points attributes in de <option> tag en dan doe je niet $(this).val() maar $(this).children(':selected').attr('points')