Autor Zpráva
Fisak
Profil
Dobrý den. Rád bych odeslal formulář bez nutnosti refreshe... mám ajax
<script>
            Casovac();

            function NewHodnota() {
                hodnota = document.getElementById('hodnota');
                if (window.XMLHttpRequest) xmlhttp = new XMLHttpRequest();
                else xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
                xmlhttp.onreadystatechange=function() {
                  if (xmlhttp.readyState==4 && xmlhttp.status==200) {
                        hodnota.innerHTML = xmlhttp.responseText;
                }    
              }    
                xmlhttp.open("GET", "./../../?page=chat_list", true);
                xmlhttp.send(); 
                Casovac();
            }
    
            function Casovac() { 
                 setTimeout("NewHodnota()", 1000);
            }
</script>
<span id='hodnota'></span>

Ten mi refreshuje stránku každou vtěřinu.. a rád bych ajaxem nebo jinak pomocí JS udělal to aby se mi data z formuláře odeslali a nemusel bych refreshovat celou stránku.. lze to? A jak ?
Str4wberry
Profil
Nevím, jestli tomu dobře rozumím, ale data si lze například poslat tak, že se přidají jako parametry do URL.
xmlhttp.open("GET", "./../../?page=chat_list&data=" + nejakaPromennaSDaty , true);


Efektu nenačtení celé stránky lze dosáhnout i odesláním formuláře do skrytého <iframe>.
Fisak
Profil
Str4wberry:
Chtěl jsem právě předejít té možnosti s iframe..
Str4wberry
Profil
No, tak potom stačí poslat data v URL, jak píšu.
Fisak
Profil
Str4wberry:
No problém je v tom že bych chtěl odesílat text který má diakritiku a je dlouhý i přes 400 znaků což nevym jak by u tohoto...
pako
Profil *
nedal by sa poslat JSON 'objekt' ako argument send ?
Fisak
Profil
Našel jsem fungující ajaxový script.. bohužel mam problém. Po odeslání formuláře se mi v textovém formuláři nechává text..

index.php
<!--http://www.9lessons.info/2009/04/submit-form-jquery-and-ajax.html-->    

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"></script>
<script type="text/javascript" >
$(function() {
$(".subChat").click(function() {

var textChat = $("#textChat").val();
var dataString = 'text_chat='+ textChat;

$.ajax({
type: "POST",
url: "script.php",
data: dataString
});

return false;
});
});
</script>

<form method="post">
<input id="textChat" name="text_chat" type="text" value=""/>
<input type="submit" name="submitname" value="Odeslat" class="subChat"/>
</form>
script.php
<?php
if(isset($_POST['text_chat']))
{
  
    $heslo = "vertrigo";        
    $server = "localhost";
    $login = "root";
    $database = "system";

    MySQL_Connect($server, $login, $heslo); 
  MySQL_Select_DB($database);
  
  $name=$_POST['text_chat'];
  
    mysql_query("INSERT INTO zkouska (id, text) VALUES ('', '".$name."')");
  
}
peta
Profil
pod radek 8 napises?
$("#textChat").val('');
http://api.jquery.com/val/
_es
Profil
Fisak:
Po odeslání formuláře se mi v textovim formuláři nechává text
Pretože si vlastne nijaký formulár neodoslal.

Dávať atribútom name a id hodnotu "name" asi nie je dobrý nápad.
Fisak
Profil
peta:
díky moc :-)
Chamurappi
Profil
Reaguji na Fisaka:
Našel jsem fungující ajaxový script
Ten před tím také fungoval a stačilo ho jednoduše upravit, nemusel jsi kvůli tomu tahat zastaralou knihovnu.

Co se stane, když někdo do chatu napíše ampersand?
Fisak
Profil
Chamurappi:
Nestane se nic? Nebo tedy alespoň nevidím že by se něco událo..

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: