Problema Submit form afisat cu ajax

Coduri intrebari, probleme legate de HTML, XHTML si CSS
andras
Mesaje: 430

Problema Submit form afisat cu ajax

Salut,
Am un cod intr-un fisier php apelat din ajax (simplificat):

Cod: Selectaţi tot

<?php
$re_html .='<form action="updatefisiere.php" method="post" enctype="multipart/form-data" >';    
$re_html .='<tr style="height:80px;">'; 
$re_html .='<td ><input type="hidden" id="fisuid"  name="fisuid" value="'.$nm.'"</td>';
$re_html .='<td style="text-align:center;"><input type="file" id="fisu" name="fisu" title="file upload: Size=max.500KB"   style="font-size:18px;height:100%;width:100%;"></td>';
$re_html .='<td style="text-align:center;"><input type="text" id="fisutext" name="fisutext" style="font-size:18px;height:100%;width:100%;"></td>';
$re_html .='<td colspan="2" style="text-align:center;"><input type="submit" value="'.$lang['TABLECOM_19'].'"  style="font-size:22px;height:100%;width:100%;"></td>';
$re_html .='</tr>';    
$re_html .='</form>'; 
echo $re_html;  
?>
Form-ul nu reactioneaza cind apas pe Submit (nu executa codul din updatefisiere.php). Nu afiseaza nici o eroare. Care sa fie cauza? Multumesc.

MarPlo
Salut
Codul pare in regula. L-am testat asa separat, butonul Submit functioneaza.
Daca in pagina unde-l afisezi nu merge, e posibil sa ai un cod javascript care aplica preventDefault() la elementele <form>.
Incearca sa adaugi atributul: onsubmit="return true;" in tagul <form>.

andras
N-a mers nici asa, dar am schimbat, in loc de type="submit" am pus type="button" onclick="incarcafisu();" iar in JS am pus:

Cod: Selectaţi tot

<script type="text/javascript" language="javascript">
function incarcafisu(){
    alert('salut');
   document.getElementById('formfisu').submit();   
}
</script>
si acum functioneaza dar nu mai recunoaste variabilele $_POST. Cum ii transmit variabilele? Sa fac cu ajax?

Tot nu inteleg de ce nu merge in HTML, n-am deloc preventDefault() la form-uri.
Form-ul este definit in PHP rezultat dintr-un ajax (fara reload page). De ce submit merge in JS si nu merge in HTML? Aici e ceva ce imi scapa.
Multumesc.

MarPlo
Daca nu ai preventDefault() la form-uri in vreun script din acea pagina, explicatia ar fi ca e o eroare de cod html la acel form sau la button, pe la ghilimele sau caracterele de tag <>; asta poate cauza si netrimiterea datelor din acele campuri.
Tag-ul <input> cu id-ul "fisuid" nu e inchis. Posibil sa fie si alte mici greseli.
- Daca aplici un alert() la raspunsul ajax cu acel form si-l copii, poate observi ceva in codul html din raspuns.

andras
Pana urma am rezolvat. In ajax am pus form-ul in interiorul <td> (simplificat) :

Cod: Selectaţi tot

$re_html .='<td style="text-align:left;"><form id="formfisu" name="formfisu" action="updateincarcafis.php" method="post" enctype="multipart/form-data" > <input type="file" id="fisu" name="fisu"  title="file upload: Size=max.50MB"   style="font-size:18px;height:60px;width:100%;text-align:left;display:none;"  /><input type="hidden" id="fisuhidden"  name="fisuhidden" value="'.$nm.'" /></form></td>'; 
iar in JS am pus:

Cod: Selectaţi tot

<script type="text/javascript" language="javascript">
 document.getElementById('formfisu').submit(); 
altafunctie();
</script>
si a mers. Daca pun form-ul in exteriorul <td> nu mai merge. Care o fi cauza?
Alta intrebare: dupa document.getElementById('formfisu').submit(); cum ma intorc in JS pentru a continua cu altafunctie(); ?
Multumesc.

MarPlo
1. In tabele html continutul se adauga in elementul <td>.
2. Dupa ce se executa submit() nu mai poti continua sa execute si alt cod javascript fiindca se deschide pagina unde se face submit. Poti pune altafunctie() inainte de submit().

Subiecte similare