Anonymní profil Gorri – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Gorri – Programujte.comAnonymní profil Gorri – Programujte.com

 

Příspěvky odeslané z IP adresy 46.135.102.–

Gorri
JavaScript, AJAX, jQuery › Reload PHP scriptu formuláře…
18. 12. 2019   #385103

Abych to upřesnil. Jde prostě o to, že PHP script se logicky musí refreshnout aby se kompletně zpracoval. Bohužel načte se ajaxem ale nerefreshne. Díky čemuž neudělá vše co by měl. Z toho co jsem tady napsal to musí být případně i znatelné. ;-)

Vím, že to asi není úplně ideální řešení co jsem si napsal ale momentálně mě to ani jinak nenapadlo. :-D

Gorri
JavaScript, AJAX, jQuery › Reload PHP scriptu formuláře…
18. 12. 2019   #385102

#2 gna
Nevím co bylo myšleno tím "To se povedlo, data se uloží, ale script se nezpracuje.".

V SQL příkazu jsou 2 věci. Jedna je zpráva a druhá je to co je v $_GET['name']. Zpráva se uloží ale $_GET['name'] ne. Věškeré pokusy uložit příkaz do DB selhaly a neuložily se.

Gorri
JavaScript, AJAX, jQuery › Reload PHP scriptu formuláře…
18. 12. 2019   #385098

Ahoj,

řeším takový problémek. I když moc JS nerozumím, zkusil jsem napsat formulář, který je zpracovaný ajaxem. To se povedlo, data se uloží, ale script se nezpracuje. Vím, že se musí refreshnout. Což by se minulo účinkem. Dokázal by mi někdo prosím poradit, jak zprovoznit celý script?

Zde je formulář

<script src="https://code.jquery.com/jquery-3.4.1.js"></script>
<form id="message">
      <p id="result"></p>
    <input type="text" name="zprava" id="zprava" placeholder="Napište zprávu">
    <input type="button" class="btn" id="send" name="send" value="Odeslat">
</form>
<script>
    $(document).ready(function(){
	$("#send").click(function(){
	   $.ajax({
	      //dataType: "json",
	      type:"POST", // metoda odeslání
	      url:"/view/online-chat/save-message.php", // umístění odesílacího scriptu
	      data:$("#message").serialize(), // díky tomuto není nutné definovat pro každou položku var
	      success:function(d) // úspěšné odeslání
	      {
		  $("#result").html(d); // zobrazení informace o odeslání
		  $("#message")[0].reset(); // vyresetování formuláře
		  document.getElementById("result").style.display = "block";
	      }
	      
	   });
	});
    });
</script>

Toto je script, který je volaný url v js (save-message.php)

date_default_timezone_set("Europe/Prague");
ini_set('display_errors', 1);
if(empty($_POST['zprava']))
{
    echo 'Prazdne';
}
else
{
    if(Db::query('INSERT INTO zpravy (zprava, uid) VALUES (?, ?)', 
	    $_POST['zprava'], $_GET['name']))
    {
	echo 'OK';
    }
    else
    {
	echo 'Chyba';
    }
}

Jde jen o to aby se save-message.php spustil a zpracoval. Bude tam více hodnot.

Děkuji za případné návrhy

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032021 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý