Hallo,
ich muss gerade an Shopware rumschrauben, ich möchte gerne, das bei Änderung der Variant, nicht das Formular abgesendet wird, sondern Ajax Request gestartet.
Soweit, Sogut, Ansich klappt das auch. Aber die Daten vom Server enthalten die Variantenauswahl nicht mehr, woran liegt das, was mache ich hier falsch?
Ich habe ein kleines Testcase gebaut, um es zu visualisieren, muss die Action- Url aber entfernen, wegen der anonymität
[src=html4strict]
<!-- das ist das normale varianten formular -->
<form method="post" action="<!-- die url zum produkt -->">
<select name="group[149]">
<option value="810">text</option>
</select>
<select name="group[150]">
<option value="823">text</option>
</select>
<select name="group[152]">
<option value="840">text</option>
</select>
<input type="submit" name="name" />
</form>
<div class="dbg"></div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
[/src]
[src=javascript]
var $form = $('form'),
formUrl = $form.attr( 'action' ),
formMethod = $form.attr( 'method' );
function sendForm(){
var serData = {};
$.each( $form.serializeArray(), function( i, data ){
serData[data.name] = data.value;
});
$.ajax({
url: formUrl,
//dataType: 'json',
data: serData,
async: true,
method: 'POST',
success: function( data ){
// es kommt eine antwort, diese enthält auch das produkt,
// allerdings keine varianten auswahl und keinen preis
console.log(data);
$('.dbg').html(data);
},
error : function(e,a,b){
console.log('error');
console.log(e,a,b);
}
})
}
$('input[type=submit]').on('click', function(e){
e.preventDefault();
sendForm();
})
[/src]
Derzeit wird Shopware 4.3.6 eingesetzt.
ich muss gerade an Shopware rumschrauben, ich möchte gerne, das bei Änderung der Variant, nicht das Formular abgesendet wird, sondern Ajax Request gestartet.
Soweit, Sogut, Ansich klappt das auch. Aber die Daten vom Server enthalten die Variantenauswahl nicht mehr, woran liegt das, was mache ich hier falsch?
Ich habe ein kleines Testcase gebaut, um es zu visualisieren, muss die Action- Url aber entfernen, wegen der anonymität
[src=html4strict]
<!-- das ist das normale varianten formular -->
<form method="post" action="<!-- die url zum produkt -->">
<select name="group[149]">
<option value="810">text</option>
</select>
<select name="group[150]">
<option value="823">text</option>
</select>
<select name="group[152]">
<option value="840">text</option>
</select>
<input type="submit" name="name" />
</form>
<div class="dbg"></div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
[/src]
[src=javascript]
var $form = $('form'),
formUrl = $form.attr( 'action' ),
formMethod = $form.attr( 'method' );
function sendForm(){
var serData = {};
$.each( $form.serializeArray(), function( i, data ){
serData[data.name] = data.value;
});
$.ajax({
url: formUrl,
//dataType: 'json',
data: serData,
async: true,
method: 'POST',
success: function( data ){
// es kommt eine antwort, diese enthält auch das produkt,
// allerdings keine varianten auswahl und keinen preis
console.log(data);
$('.dbg').html(data);
},
error : function(e,a,b){
console.log('error');
console.log(e,a,b);
}
})
}
$('input[type=submit]').on('click', function(e){
e.preventDefault();
sendForm();
})
[/src]
Derzeit wird Shopware 4.3.6 eingesetzt.