POST gegevens terugzetten in formulier
Ik ben nu een tijdje bezig met een mail systeem. Nu wil ik gebruikers in een textarea zetten (dit zijn de gebruikers waar de mail naar toe gaat.) Dit gebeurd door middel van een formulier op dezelfde pagina als waarop ik de gegevens in vul voor in de mail. Met dit formulier post ik de geselecteerd gebruikers naar de textarea maar doordat ik post wordt de pagina natuurlijk weer herladen en zijn al mijn al ingevulde gegevens weg. Nu vroeg ik mij af hoe ik dit kan oplossen met behulp van JQuery of Ajax?
Groet,
Raymond
Bas Kreleger:
Topic titel aangepast
Gewijzigd op 26/03/2012 15:40:38 door B a s
Zodra het formulier ge$_POST is dan kun je de toch gewoon de value van de textarea terug zetten met wat er voor de post in stond?
Code (php)
1
2
3
2
3
<?php
echo '<textarea name="gebruikers">' . (!empty($_POST['gebruikers']) ? htmlspecialchars($_POST['gebruikers']) : '') . '</textarea>';
?>
echo '<textarea name="gebruikers">' . (!empty($_POST['gebruikers']) ? htmlspecialchars($_POST['gebruikers']) : '') . '</textarea>';
?>
Een andere mogelijkheid is (zonder refresh) is een dmv een ajax request slechts één formulier te verwerken. Zie jQuery post.
Eventueel (beetje vies) kun je een iframe gebruiken.
Gewijzigd op 26/03/2012 15:49:13 door B a s
Ja, dit is ongeveer wat ik bedoel kan je dan met JQuery zonder refresh de gegevens naar een textarea in een ander form sturen?
Quote:
Ik heb het op de volgende manier opgelost:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
<script type="text/javascript">
$(document).ready(function()
{
$("#selectUserForm").validate(
{
debug: false,
submitHandler: function(form)
{
$.post('process.php', $("#selectUserForm").serialize(), function(data)
{
$('textarea#c_email_to').html(data);
});
}
});
</script>
?>
<script type="text/javascript">
$(document).ready(function()
{
$("#selectUserForm").validate(
{
debug: false,
submitHandler: function(form)
{
$.post('process.php', $("#selectUserForm").serialize(), function(data)
{
$('textarea#c_email_to').html(data);
});
}
});
</script>
?>
Quote:
Het kan ook met json dan werkt het op de volgende manier:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
<script type="text/javascript">
jQuery('#firstForm').live('submit',function(event) {
$.ajax({
url: 'GetUserInfo.php', // script to return user info in json format
type: 'POST',
dataType: 'json',
data: $('#firstForm').serialize(),
success: function( data ) {
for(var id in data) {
jQuery('secondForm#' + id).val(data[id]); // loop json data to populate each field of second form
}
}
});
return false;
});
</script>
?>
<script type="text/javascript">
jQuery('#firstForm').live('submit',function(event) {
$.ajax({
url: 'GetUserInfo.php', // script to return user info in json format
type: 'POST',
dataType: 'json',
data: $('#firstForm').serialize(),
success: function( data ) {
for(var id in data) {
jQuery('secondForm#' + id).val(data[id]); // loop json data to populate each field of second form
}
}
});
return false;
});
</script>
?>
Quote:
het wordt dan een array zoals bijv:
Code (php)
1
2
3
2
3
<?php
$userInfo = array( 'FirstName' => 'abc', 'LastName' => 'xyz', 'DOB' => '01/01/2000');
?>
$userInfo = array( 'FirstName' => 'abc', 'LastName' => 'xyz', 'DOB' => '01/01/2000');
?>
Quote:
en echo deze Json array als volgt
Gewijzigd op 28/03/2012 10:40:27 door raymond van Os