Dooling Posted August 6, 2008 Report Share Posted August 6, 2008 Forma tiek ielādēta ar AJAX palīdzību. Formā lietotājs veic izmaiņas un saglabā. Update Mysql tabulā notiek, bet pēc update AJAX neielādē laboto saturu, tikai pēc atkārtotas formas atvēršanas labotā informācija tiek ielādēta. Kāpēc tā? Zemāk ir parādīti kods: update.php <?php seit izpildas mysql update, kad tiek labota forma ?> <script language="JavaScript" src="js/functions.js?<?php echo time(); ?>"></script> <script language="JavaScript" src="js/calendar.js"></script> <img src="pic/t.gif" width="1" height="1" border="0" onLoad="LoadCheck('<?php echo $aid; ?>', '<?php echo $user_id; ?>', '<?php echo $type; ?>');" /> <div id="saturs"></div> functions.js function LoadCheck(aid, anketetajs, type) { var ajaxRequest; // The variable that makes Ajax possible! try{ // Opera 8.0+, Firefox, Safari ajaxRequest = new XMLHttpRequest(); } catch (e) { // Internet Explorer Browsers try { ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { alert("Jūsu internetpārlūkprogramma neatbalsta AJAX!"); return false; } } } // Create a function that will receive data sent from the server ajaxRequest.onreadystatechange = function() { if(ajaxRequest.readyState == 4) { var ajaxDisplay = document.getElementById('saturs'); ajaxDisplay.innerHTML = ajaxRequest.responseText; } else { var ajaxDisplay = document.getElementById('saturs'); ajaxDisplay.innerHTML = '<br /><br /><table align="center" style="color: red;"><tr><td><img src="pic/load.gif" width="14" height="14" alt="Lūdzu uzgaidiet" /></td><td>Lūdzu uzgaidiet! Notiek datu ielāde!!!</td> </tr></table>'; } } var aid = aid; var user = user_id; var type = type; var queryString = "?aid=" + aid + "&user_id=" + user_id + "&type=" + type; ajaxRequest.open("GET", "include/LoadContent.php" + queryString, true); ajaxRequest.send(null); } Link to comment Share on other sites More sharing options...
andrisp Posted August 6, 2008 Report Share Posted August 6, 2008 (edited) A kur ir pats formas kods ? Bet vispār - AJAX izsauktais skripts visticamāk vienkārši neatgriež HTML vajadzīgo. Edited August 6, 2008 by andrisp Link to comment Share on other sites More sharing options...
Dooling Posted August 6, 2008 Author Report Share Posted August 6, 2008 (edited) Lūk: <?php $user_id = trim($_GET['user_id']); $aid = trim($_GET['aid']); $type = trim($_GET['type']); include("conn.php"); ?> <form method="post" name="forma" action="update.php"> <table class="text" cellspacing="0" cellpadding="0" border="0" style="width:700px;"> <tr> <td > <?php $sql="SELECT * FROM table where aid = '$aid' and user_id = '$user_id' and type = '$type'"; $vaicajums=mysql_query($sql); $numrow = mysql_num_rows($vaicajums); while($row = mysql_fetch_array($vaicajums)) { $ok = $row["ok"]; $vertiba = $row["vertiba"]; $mid = $row["mid"]; $field_name = $row["field_name"]; $field_type = $row['field_type']; $j=$j+1; if($field_type=="1") { $lauka_tips = "<input type=\"text\" style='width: 250px' value=\"$vertiba\" name='$mid'/>"; } elseif($field_type=="2") { $lauka_tips = "<textarea rows=\"3\" cols=\"70\" name='$mid'>$vertiba</textarea>"; } echo "<TR> <TD width=\"200\" valign=\"top\">$field_name</TD> <td valign=\"top\">$lauka_tips</td> </TR>"; </table> <?php } ?> </td> </tr> </table> </form> Edited August 6, 2008 by Dooling Link to comment Share on other sites More sharing options...
andrisp Posted August 6, 2008 Report Share Posted August 6, 2008 Lūdzu, pārliec visus tos kodus uz paste.php.lv. Grūti pētīt, ja jaskrollē. Link to comment Share on other sites More sharing options...
Dooling Posted August 6, 2008 Author Report Share Posted August 6, 2008 Ieliku paste.php.lv: update.php functions.js Forma Link to comment Share on other sites More sharing options...
andrisp Posted August 6, 2008 Report Share Posted August 6, 2008 A kas tev atveras pēc submita ? Link to comment Share on other sites More sharing options...
Dooling Posted August 6, 2008 Author Report Share Posted August 6, 2008 Forma tiek ielādēta ar AJAX palīdzību. Sākumā atveras update.php un pēc submita arī tiek atvērta update.php lapa Link to comment Share on other sites More sharing options...
andrisp Posted August 6, 2008 Report Share Posted August 6, 2008 Zini, parādi arī updeitošanas kodu visu (to, kas update.php sākumā). It kā tur vaina nevarētu būt, bet nu parādi. Link to comment Share on other sites More sharing options...
Dooling Posted August 6, 2008 Author Report Share Posted August 6, 2008 labošanas kods Link to comment Share on other sites More sharing options...
andrisp Posted August 6, 2008 Report Share Posted August 6, 2008 (edited) Un iekš include/LoadContent.php ir tas formas kods, ja ? Ā, un kas īsti tiek atvērts "ajaxīgajā daļā" pēc submita ? Forma, bet ar vecajiem datiem ? Edited August 6, 2008 by andrisp Link to comment Share on other sites More sharing options...
Dooling Posted August 6, 2008 Author Report Share Posted August 6, 2008 (edited) include/LoadContent.php - ir formas kods. Pēc submita tiek atvērta tā pati lapa un ajaxīgajā daļā atkal tiek ielādēta forma. Reizēm ir ka uzreiz pēc submita tiek ielādēti labotie dati, citreiz atverot no jauna tikai tiek ielādēti labotie dati, gadās arī ka divreiz ielādējot tiek ielādēti labotie dati. Varbūt kaut kas tiek iekešots un tāpēc dati neielādējas uzreiz pēc submita. Edited August 6, 2008 by Dooling Link to comment Share on other sites More sharing options...
andrisp Posted August 6, 2008 Report Share Posted August 6, 2008 Nu spriežot pēc tava apraksta, tā arī izskatās, ka kaut kāds kešings notiek. Bet nu gļukains izklausās. Link to comment Share on other sites More sharing options...
v3rb0 Posted August 6, 2008 Report Share Posted August 6, 2008 ja tiešam keša, tad url, ar kuru prasi jauno info klāt pieliec "foo="+Math.floor(Math.random()*10000000000) Link to comment Share on other sites More sharing options...
Dooling Posted August 6, 2008 Author Report Share Posted August 6, 2008 Jā, tiešām informācija tika kešota. v3rb0 padoms līdzēja. Paldies ;) Link to comment Share on other sites More sharing options...
Mr.Key Posted August 6, 2008 Report Share Posted August 6, 2008 vai arī skriptā, kas veic ajax pieprasījuma saņemšanu, pirmajā rindā: header('Cache: no-cache'); Link to comment Share on other sites More sharing options...
Recommended Posts