Problème avec AJAX

Squad-G -  
Squad-G Messages postés 70 Statut Membre -
Bonjour,

J'essaie de construire un truc simple, mais j'y arrive même pas... je comprend pu vraiment enfaîte. Je suis plenté là. Alors voilà, je dois valider un formulaire à partir d'un lien se trouvant dans une boîte qui s'affiche par dessus l'écran.

Page de base classique :
if($Count > 0)
{
echo '<form name="step2_form" onsubmit="new Ajax.Updater(\'Step_Frame\', \'./Librairies/AJAX/Upload/Step_3.php\', {asynchronous:true, parameters:Form.serialize(this)}); return false;" action="" method="POST"><strong>'.LANG_UPLOAD_STEP_2_CATEGORIE.' </strong><select name="categorie">';
echo '<option value="0"'.(($Assoc_Verif) ? '' : ' selected').'>'.LANG_UPLOAD_STEP_2_CHOOSE.'</option>';
while($Assoc = SQL_Assoc($Query))
{
echo '<option id="cur_cat" onclick="document.getElementById(\'step2_submit_id\').type=\'submit\'; return false" value="'.$Assoc['ID'].'"'.($Assoc_Verif ? (($Assoc_Verif['Categorie']==$Assoc['ID']) ? ' selected' : '') : '').'>'.htmlentities($Assoc['Nom']).'</option>';
}
echo '</select><br /><br /><input type="hidden" onclick="displayMessage(\'/Alertes/Upload_Confirm_Categorie.php\');return false" name="step2_submit_name" id="step2_submit_id" value="'.LANG_UPLOAD_STEP_2_NEXT_STEP.'" /></form>';
}

Page de confirmation (Upload_Confirm_Categorie.php) :
<div id="box6" class="bg7">
<div class="title">
<h2 class="text2 bg8">Choisir une catégorie</h2>
</div>
<div class="content">
<p>Étes-vous certain de vouloir utiliser cette catégorie ?</p>
<p><a href="#" onclick="document.getElementById('step2_submit_id').value='Chargement en cours ...'; document.getElementById('step2_submit_id').disabled='disabled'; document.step2_form.submit(); closeMessage(); return false">Oui</a> - <a href="#" onclick="closeMessage();return false;">Non</a></p>
</div>
</div>

Le document.step2_form.submit(); sur la seconde page ne fonctionne pas , le formulaire se voit renvoyé à la page de base (Step_1.php) au lieu de Step_3.php (la page de base est Step_2.php appelé en ajax dans une page appelé Upload.php (qui elle appele par défaut Step_1.php

Mercià tous ceux qui laisseront de l'aide ici !

3 réponses

Squad-G Messages postés 70 Statut Membre 5
 
Désolé pour le post plus haut, pour les cods voilà :

Page de base (Step_2.php) inclut via AJAX dans Upload.php
	if($Count > 0)
	{
		echo '<form name="step2_form" onsubmit="new Ajax.Updater(\'Step_Frame\', \'./Librairies/AJAX/Upload/Step_3.php\', {asynchronous:true, parameters:Form.serialize(this)}); return false;" action="" method="POST"><strong>'.LANG_UPLOAD_STEP_2_CATEGORIE.' </strong><select name="categorie">';
		echo '<option value="0"'.(($Assoc_Verif) ? '' : ' selected').'>'.LANG_UPLOAD_STEP_2_CHOOSE.'</option>';
		while($Assoc = SQL_Assoc($Query))
		{
			echo '<option id="cur_cat" onclick="document.getElementById(\'step2_submit_id\').type=\'submit\'; return false" value="'.$Assoc['ID'].'"'.($Assoc_Verif ? (($Assoc_Verif['Categorie']==$Assoc['ID']) ? ' selected' : '') : '').'>'.htmlentities($Assoc['Nom']).'</option>';
		}
		echo '</select><br /><br /><input type="hidden" onclick="displayMessage(\'/Alertes/Upload_Confirm_Categorie.php\');return false" name="step2_submit_name" id="step2_submit_id" value="'.LANG_UPLOAD_STEP_2_NEXT_STEP.'" /></form>';
	}
	else
	{
		echo LANG_UPLOAD_STEP_2_NONE;
	}


La page Upload_Confirm_Categorie.php appelé dans la petite boite :
<div id="box6" class="bg7">
	<div class="title">
		<h2 class="text2 bg8">Choisir une cat&#233;gorie</h2>
	</div>
	<div class="content">
		<p>&#201;tes-vous certain de vouloir utiliser cette cat&#233;gorie ?</p>
		<p><a href="#" onclick="document.getElementById('step2_submit_id').value='Chargement en cours ...'; document.getElementById('step2_submit_id').disabled='disabled'; document.step2_form.submit(); closeMessage(); return false">Oui</a> - <a href="#" onclick="closeMessage();return false;">Non</a></p>
	</div>
</div>


La page Upload.php
<?php
require_once('./Librairies/Final.php');

Template_Render_Header(LANG_UPLOAD_PAG_TITLE);
User_Status();
User_Online();
?>
<div id="box7">
	<h2 class="text3 bg10"><?php echo LANG_UPLOAD_ADD_TITLE ?></h2>
	<?php
	$Query_Verif = SQL_Query('SELECT * FROM `cur_upload` WHERE `User_ID` = "'.$OUser['User_ID'].'" LIMIT 1') or SQL_Error(__FILE__,__LINE__);
	$Assoc_Verif = SQL_Assoc($Query_Verif);
	
	if($Assoc_Verif)
	{
		echo '<p><span style="color: red; font-weight:bold;">'.LANG_UPLOAD_WARNA.'</span> '.LANG_UPLOAD_WARNB.' <a href="#" onclick="displayMessage(\'/Alertes/Upload_Reset.html\');return false">'.LANG_UPLOAD_WARNC.'</a>'.LANG_UPLOAD_WARND.'</p>';
	}
	?>
	<div id="Step_Frame">
		<?php echo LANG_AJAX_LOADING ?>
	</div>
</div>
<?php
Template_Render_Footer();
?>


Voilà merci !
0
Squad-G Messages postés 70 Statut Membre 5
 
Bon bah en 30 secondes j'ai découvert que le document.step2_form.submit(); renvoie vers la case Action et charge automatiquement Upload.php (car action = vide) ce qui est logique, mais document.step2_form.submit(); doit aller vers onsubmit :S Any ideas ?
0
Squad-G Messages postés 70 Statut Membre 5
 
LOL Vraiment dsl de spammer, mais j'ai trouvé la solution

Changer :
document.step2_form.submit();

par
document.step2_form.onsubmit();

car submit lance automatiquement action, mais onsubmit est onsubmit évidemment :)

voila :)
0