Jump to content
php.lv forumi

Problēmas ar labotās informācijas ielādi


Dooling

Recommended Posts

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

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 by Dooling
Link to comment
Share on other sites

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 by Dooling
Link to comment
Share on other sites

×
×
  • Create New...