Formulier value uithalen
Ik ben bezig om dmv. Ajax een functie te schrijven die de values: amount en information nodig heeft uit één formulier. Nou heb ik deze code als formulier:
Code (php)
1
2
2
<td><input type="text" name="amount" id="amount" /></td>
<td><input type="text" name="information" id="information" /></td>
<td><input type="text" name="information" id="information" /></td>
(Gewoon in een tabel en normale form tags)
Verder gebruik ik deze functie om het PHP bestand aan te roepen:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
function add_product(product_id){
var amount = document.forms[0].amount.value;
var information = document.forms[0].information.value;
var url = 'includes/pages/ajax/admin_addproduct.php';
var params = 'product_id=' + product_id + '&amount=' + amount + '&information=' + information;
new Ajax.Request ( url, { method: 'get', parameters: params } );
}
var amount = document.forms[0].amount.value;
var information = document.forms[0].information.value;
var url = 'includes/pages/ajax/admin_addproduct.php';
var params = 'product_id=' + product_id + '&amount=' + amount + '&information=' + information;
new Ajax.Request ( url, { method: 'get', parameters: params } );
}
En ik roep hem zo aan (waar de form staat dus):
Code (php)
1
<td><a href="#" onclick="add_product('.$resultpc['product_id'].')"><img src="images/icons/add.png" width="16" height="16" title="Product toevoegen aan factuur" /></a></td>
Maaaaar....:
Elke keer geef het javascriptje de parameters amount en information door als 'undefined' (beide). Dus ik krijg de values er op de een of andere manier niet goed uit.
Iemand enig idee hoe ik de values wel kan krijgen en door kan geven aan het php script?
Bedankt,
Niels.
P.S: Mijn kennis van JavaScript is weinig.
Dan moet je een kijken naar de $F(); functie...
Dit:
Code (php)
1
2
2
var amount = document.forms[0].amount.value;
var information = document.forms[0].information.value;
var information = document.forms[0].information.value;
vervangen door dit:
Is het zo simpel? Jullie willen niet weten hoeveel uur ik vannacht er nog aan heb gewerkt hehe.
Hartstikke bedankt!!
niels dat gaat je nog veel vaker overkomen :P
Dat is best logisch. Dan moet je die andere inputs een ander ID meegeven.
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
while ($resultpc = mysql_fetch_assoc($querypc))
{
echo '<tr>
<td>' . $resultpc['name'] . '</td>
<td><input type="text" name="amount" id="amount" /></td>
<td><input type="text" name="information" id="information" /></td>
<td><a href="#" onclick="add_product('.$resultpc['product_id'].')"><img src="images/icons/add.png" width="16" height="16" title="Product toevoegen aan factuur" /></a></td>
</tr>';
}
{
echo '<tr>
<td>' . $resultpc['name'] . '</td>
<td><input type="text" name="amount" id="amount" /></td>
<td><input type="text" name="information" id="information" /></td>
<td><a href="#" onclick="add_product('.$resultpc['product_id'].')"><img src="images/icons/add.png" width="16" height="16" title="Product toevoegen aan factuur" /></a></td>
</tr>';
}
Bedoel je zoiets:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
$i = 0;
while ($resultpc = mysql_fetch_assoc($querypc))
{
$i++;
echo '<tr>
<td>' . $resultpc['name'] . '</td>
<td><input type="text" name="amount'.$i.'" id="amount" /></td>
<td><input type="text" name="information'.$i.'" id="information" /></td>
<td><a href="#" onclick="add_product('.$resultpc['product_id'].')"><img src="images/icons/add.png" width="16" height="16" title="Product toevoegen aan factuur" /></a></td>
</tr>';
}
while ($resultpc = mysql_fetch_assoc($querypc))
{
$i++;
echo '<tr>
<td>' . $resultpc['name'] . '</td>
<td><input type="text" name="amount'.$i.'" id="amount" /></td>
<td><input type="text" name="information'.$i.'" id="information" /></td>
<td><a href="#" onclick="add_product('.$resultpc['product_id'].')"><img src="images/icons/add.png" width="16" height="16" title="Product toevoegen aan factuur" /></a></td>
</tr>';
}
En hoe kan je dat dan in Javascript oplossen? (ik heb zo goed als geen verstand van Javascript)
http://thinkweb2.com/projects/prototype/prototype-1602-cheat-sheet/
Je zou met down(); kunnen kijken.
Maar het is makkelijker om gewoon een ander idee mee te geven denk ik.
Je kan ook een heel formulier ophalen volgens mij...
Weet ik ff niet uit me hoofd.
Wat bedoel je met down()?
Bedankt!
Niels
(Kan het trouwens niet met een simpele manier anders worden gemaakt, want anders moet ik het hele script ombouwen)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function add_product(product_id){
var amount = $F('amount'+product_id);
var information = $F('information'+product_id);
var url = 'includes/pages/ajax/admin_addproduct.php';
var params = 'product_id=' + product_id + '&amount=' + amount + '&information=' + information;
new Ajax.Request ( url, { method: 'get', parameters: params } );
}
<?php
$i = 0;
while ($resultpc = mysql_fetch_assoc($querypc))
{
$i++;
echo '<tr>
<td>' . $resultpc['name'] . '</td>
<td><input type="text" name="amount'.$resultpc['product_id'].'" id="amount'.$resultpc['product_id'].'" /></td>
<td><input type="text" name="information'.$resultpc['product_id'].'" id="information'.$resultpc['product_id'].'" /></td>
<td><a href="#" onclick="add_product('.$resultpc['product_id'].')"><img src="images/icons/add.png" width="16" height="16" title="Product toevoegen aan factuur" /></a></td>
</tr>';
}
?>
var amount = $F('amount'+product_id);
var information = $F('information'+product_id);
var url = 'includes/pages/ajax/admin_addproduct.php';
var params = 'product_id=' + product_id + '&amount=' + amount + '&information=' + information;
new Ajax.Request ( url, { method: 'get', parameters: params } );
}
<?php
$i = 0;
while ($resultpc = mysql_fetch_assoc($querypc))
{
$i++;
echo '<tr>
<td>' . $resultpc['name'] . '</td>
<td><input type="text" name="amount'.$resultpc['product_id'].'" id="amount'.$resultpc['product_id'].'" /></td>
<td><input type="text" name="information'.$resultpc['product_id'].'" id="information'.$resultpc['product_id'].'" /></td>
<td><a href="#" onclick="add_product('.$resultpc['product_id'].')"><img src="images/icons/add.png" width="16" height="16" title="Product toevoegen aan factuur" /></a></td>
</tr>';
}
?>
Ik neem aan dat product_id uniek is bij iedere <tr>?
Iedereen echt bedankt!
Niels