Archivlink: javarea.de Forum > JavaScript > Zwei Funktionen mit ein Submit.
Vollständigen Link anzeigen: javarea.de Forum > JavaScript > Zwei Funktionen mit ein Submit.
Pages: [1]
| geschrieben von tyssen am 09.03.2010 - 21:20 |
Hallo,
ich möchte 1. den Warenkorb füllen und 2. eine weitere Warenkorb-Box anzeigen.
Versuch:
| PHP-Quelltext | 1:
2:
3:
4:
5:
|
<?
echo"
<form action=\"\" method=\"post\" onSubmit=\"return MeineFunction(this.neu_po.value,this.option_neu.value,this.menge.value,this.hinwe.value); loadContent('box_warenkorb.php','korb_{$list['ad_id']}_{$tr}'); \">
";
?>
|
Testseite: http://baushop24.com/betonverblende....index.html
Warenkorb Button klicken.
Skript: http://baushop24.com/java.js
Wie könnte es funken. (Bezahle auch für ein Lösung)
Gruß
Michael Tyssen
|
| geschrieben von Danny am 10.03.2010 - 12:06 |
Hallo Michael,
ich vermute folgendes Problem bei dir:
Der erste Aufruf lautet
| HTML-Quelltext | 1:
| return MeineFunction(this.neu_po.value,this.option_neu.value,this.menge.value,this.hinwe.value); |
Durch das return wird der onsubmit Event Handler abgebrochen und derRückgabewert von MeineFuntion zurückgegeben (ibei dir immer false). Die Nachfolgende Funktion wird somit auch nicht mehr ausgeführt.
Versuche mal folgendes
| HTML-Quelltext | 1:
| <form action="" method="post" onsubmit="MeineFunction(this.neu_po.value,this.option_neu.value,this.menge.value,this.hinwe.value); loadContent('box_warenkorb.php','korb_{$list['ad_id']}_{$tr}'); return false; "> |
Gruß Danny |
| geschrieben von tyssen am 11.03.2010 - 08:41 |
Danke! Jetzt funkts!
Kommt davon wenn man als phpler Javascript anwenden muss und keine Ahnung hat.
Gruß
Michael Tyssen |
| geschrieben von tyssen am 11.03.2010 - 14:24 |
hänge schon wieder:
Warum geht das jetzt nicht mit zwei Boxen:
| PHP-Quelltext | 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:
|
<?
<form action=\"\" method=\"post\" onSubmit=\" MeineFunction(this.neu_po.value,this.option_neu.value,this.menge.value,this.hinwe.value); loadContent('box_warenkorb.php','warenkorb','{$list[ad_id]}$tr'); return false;\">
JAVA:
function loadContent(url,div,div2)
{
xmlHttpObject.open('get',url);
xmlHttpObject.onreadystatechange = handleContent;
xmlHttpObject.send(null);
function handleContent(){
if (xmlHttpObject.readyState == 4)
{
document.getElementById("box_"+div).innerHTML = xmlHttpObject.responseText;
document.getElementById("box2_"+div2).innerHTML = xmlHttpObject.responseText;
}
}
return false;
}
?>
|
Gruß
Michael Tyssen
|
| geschrieben von tyssen am 11.03.2010 - 17:52 |
So funkt es Komisch??
| PHP-Quelltext | 1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
|
<?
function loadContent(url,div,div2)
{
xmlHttpObject.open('get',url);
xmlHttpObject.onreadystatechange = handleContent;
xmlHttpObject.send(null);
function handleContent(){
if (xmlHttpObject.readyState == 4)
{
document.getElementById("box_"+div).innerHTML = xmlHttpObject.responseText;
if(div2) {
document.getElementById("box2_"+div2).innerHTML = xmlHttpObject.responseText;
}
}
}
return false;
}
?>
|
|
| geschrieben von Danny am 11.03.2010 - 17:55 |
hat denn div2 den gewünschten Inhalt innerhalb der Funktion ?
also z.B. mal ein
| HTML-Quelltext | 1:
| alert(div2); |
versuchen. |
| geschrieben von tyssen am 11.03.2010 - 21:09 |
Es funkt wie folgt.
Aber nur der sch... IE läd doppelt. WARUM?
PHP
| PHP-Quelltext | 1:
2:
3:
|
<?
$bestell_list.="\n\n<form action=\"\" method=\"post\" onSubmit=\"MeineFunction(this.neu_po.value,this.option_neu.value,this.menge.value,this.hinwe.value); loadContent('box_warenkorb.php','warenkorb','{$list[ad_id]}$tr{$tz}'); return false;\">
?>
|
JAVA
| PHP-Quelltext | 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:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
|
<?
function loadContent(url,div,div2)
{
var xmlHttpObject = false;
var xmlHttpObject2 = false;
if (typeof XMLHttpRequest != 'undefined')
{
xmlHttpObject = new XMLHttpRequest();
xmlHttpObject2 = new XMLHttpRequest();
}
if (!xmlHttpObject)
{
try
{
xmlHttpObject = new ActiveXObject("Msxml2.XMLHTTP");
xmlHttpObject2 = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
xmlHttpObject = new ActiveXObject("Microsoft.XMLHTTP");
xmlHttpObject2 = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e)
{
xmlHttpObject = null;
xmlHttpObject2 = null;
}}}
xmlHttpObject.open('get',url);
xmlHttpObject.onreadystatechange = handleContent;
xmlHttpObject.send(null);
function handleContent(){
if (xmlHttpObject.readyState == 4)
{
document.getElementById("box_"+div).innerHTML = xmlHttpObject.responseText;
}
}
xmlHttpObject2.open('url',"box_warenkorb.php?pos_war=1");
xmlHttpObject2.onreadystatechange = handleContent2;
xmlHttpObject2.send(null);
function handleContent2(){
if (xmlHttpObject2.readyState == 4)
{
document.getElementById("box2_"+div2).innerHTML = xmlHttpObject2.responseText;
}
}
return false;
}
?>
|
|
| geschrieben von Danny am 11.03.2010 - 23:43 |
Sorry aber verstehe nicht genau was du meinst. Kannst du es bitte etwas genauer erklären ?
Gruß Danny
|
| geschrieben von Gast am 11.03.2010 - 23:53 |
Ich möchte in einer Funktion zwei Boxen öffnen:
| PHP-Quelltext | 1:
2:
3:
4:
|
<?
1.) xmlHttpObject.open('get',url);
2.) xmlHttpObject2.open('ur',"box_warenkorb.php?pos_war=1");
?>
|
Gruß
Michael Tyssen
|
| geschrieben von Gast am 11.03.2010 - 23:56 |
SORRY
| PHP-Quelltext | 1:
2:
3:
4:
|
<?
xmlHttpObject.open('get',"url");
xmlHttpObject2.open('get',"box_warenkorb.php?pos_war=1");
?>
|
|
| geschrieben von Danny am 12.03.2010 - 00:06 |
Ich muss zugeben, dass ich den "Eigenbau" Weg für Ajax Requests schon länger nicht mehr gegangen bin. Einfach aus dem Grund, dass Browser sich da unterschiedlich verhalten und man viele "Sonserlösungen" einbauen muss..
Hast du schon einmal über die Verwendung von Javascript Frameworks z.B. jQuery, Prototype, etc.. nachgedacht ?
Das ganze sähe mit jQuery ( http://www.jquery.com ) so aus:
| HTML-Quelltext | 1:
2:
3:
4:
| function loadContent(url,div,div2) {
$("#box_"+div).load(url);
$("#box_"+div2).load("box_warenkorb.php?pos_war=1");
} |
Funktioniert in allen Browsern und ist gerade bei größeren Projekten mehr als einfach .. kannst du dir ja mal überlegen.
Nichts desto trotz eine Sache die mir aufgefallen ist:
Bei der Zeile
| HTML-Quelltext | 1:
| xmlHttpObject2.open('url',"box_warenkorb.php?pos_war=1"); |
Ist das 'url' nicht fehl am Platz ? Sollte m.E. eigentlich
| HTML-Quelltext | 1:
| xmlHttpObject2.open('get',"box_warenkorb.php?pos_war=1"); |
lauten. Vielleicht liegt es ja daran.
Gruß Danny |
| geschrieben von tyssen am 12.03.2010 - 00:07 |
Neueste Stand. Das mag Mozilla nicht:
| HTML-Quelltext | 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:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
| function loadContent(url,div,div2)
{
var xmlHttpObject = false;
var xmlHttpObject2 = false;
if (typeof XMLHttpRequest != 'undefined')
{
xmlHttpObject = new XMLHttpRequest();
xmlHttpObject2 = new XMLHttpRequest();
}
if (!xmlHttpObject)
{
try
{
xmlHttpObject = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
xmlHttpObject = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e)
{
xmlHttpObject = null;
}
}
}
xmlHttpObject.open('get',url);
xmlHttpObject.onreadystatechange = handleContent;
xmlHttpObject.send(null);
function handleContent()
{
if (xmlHttpObject.readyState == 4)
{
document.getElementById("box_"+div).innerHTML = xmlHttpObject.responseText;
}
}
if(div2){
if (!xmlHttpObject2)
{
try
{
xmlHttpObject2 = new ActiveXObject2("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
xmlHttpObject2 = new ActiveXObject2("Microsoft.XMLHTTP");
}
catch(e)
{
xmlHttpObject2 = null;
}
}
}
xmlHttpObject2.open('get',"box_warenkorb.php?pos_war=1");
xmlHttpObject2.onreadystatechange = handleContent2;
xmlHttpObject2.send(null);
function handleContent2()
{
if (xmlHttpObject2.readyState == 4)
{
document.getElementById("box2_"+div2).innerHTML = xmlHttpObject2.responseText;
}
}
}
return false;
} |
|
| geschrieben von Danny am 12.03.2010 - 00:28 |
Also zur Zeit wird die Seite nach dem Klick neugeladen .. der Fehler liegt definitiv in der loadContent aber wo ist eine gute Frage .. auf Anhieb sehe ich keinen Fehler .. versuche das Problem weiter einzugrenzen .. funktioniert es wenn du den zweiten Aja Request rauslässt, funktioniert es wenn du den Ersten weglässt.. kommt er überhaupt in die handleContent2 Funktion .. usw.
Gruß Danny |
|