Dobrá den,
Mám malý problém s JQuery.
Mám php/html formulář (pro příklad jsem ho hodně zjednodušil):
echo '
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript" src="/jquery/jquery-1.9.1.js"></script>
<script type="text/javascript" src="/jquery/jquery-migrate-1.1.1.min.js"></script>
<script language="JavaScript" type="text/JavaScript"></script>
<style type="text/css">
</style>
</head>
<body>
';
if(isset($_POST['pridat_go']))
{ //jestli tlačítko bylo zmačknuté tak jdi dál, jinak budete pokračovat ve formuláři
require_once 'php/pridat.php';
}
echo '
<form action="'.$_SERVER["PHP_SELF"].'?id='.$res_over['id'].'" method="POST" enctype="multipart/form-data" >
';
$hledat = mysql_query("SELECT * FROM `tabulka` ORDER BY `id` ASC"); //vzestupně
if(mysql_num_rows($hledat)!=0)
{
while($a_hledat = mysql_fetch_assoc($hledat))
{
if($a_hledat['id'] == $x)
{
$vlozeno = $a_hledat['vlozeno'];
echo '
<fieldset>
<legend>'.$a_hledat['id'].'</legend>
<label>Minule vloženo číslo: '.$vlozeno.'</label>
<input id="vlozeno" type="hidden" value="'.$vlozeno.'" />
<label>Vložte číslo: <input type="text" id="cislo" name="cislo" maxlength="10" /></label>
<span id="result"><br />
<br />
';
}
}
}
echo '
<input type="submit" name="pridat_go" value="OK!">
</form>
</body>
</html>';
Do tohoto formuláře načítám vstupní údaje z databáze a tím měním hodnoty: "id" a "vlozeno".
Tato část funguje a není s ní problém.
Dále mám JQuery script, který mi při zadání dat do inputu stáhne data, spočítá a vrátí do id=result.
Tento script funguje jen při prvním zadání. Jakmile odešlu formulář a tím provedu refresh a zpracuji minulá data do databáze ( require_once 'php/pridat.php' ), tak při zadání dat do inputu již script nefunguje. Zjistil jsem, že nefunguje "JQuery: $("#cislo").bind("change", function() ". Pokud změnim id z #cislo např. na #cisloo , tak to funguje, po vrácení to nefunguje. Tím jsem usoudil, že JQuery stále čeká na předešlý formulář, který ho poprvé vyvolal.
Java/JQuery script:
$(document).ready(function(){
$("#cislo").bind("change", function() {
//získáme vstupy
var cislo = $("#cislo").val();
var vlozeno = $("#vlozeno").val();
var rozdil = vlozeno - cislo;
$('#result').html(rozdil + '<input name="rozdil" id="rozdil" type="hidden" value="'+rozdil+'" />');
});
});
Je možné při každmém odeslání/načtení formuláře vyresetovat JQuery, nebo jinak ho donutit načítat aktuální formulář?
Někde jsem četl, že by mohla pomoci změna v adresném řádku. Upravil jsem ho následovně:
$sekundy = Time();
echo '
<form action="'.$_SERVER["PHP_SELF"].'?id='.$res_over['id'].'&sekundy='.$sekundy.'" method="POST" enctype="multipart/form-data" >
ale nepomohlo to.
Děkuji za radu...