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 !
Configuration: Windows Vista
Firefox 3.0.11

3 réponses

  1. 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
  2. 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
  3. 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