Mentinere pe pagina curenta dupa trimitere date la php

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
General
Mesaje: 26

Mentinere pe pagina curenta dupa trimitere date la php

Buna, am nevoie de ajutorul vostru, am facut un formular

Cod: Selectaţi tot

<form action="/send.php" method="post" id="form">
<input type="text" name="phone" required="required">
 <input type="submit" name="submit" value="<?php echo $nr_send; ?>" class="button1">
</form>
Care transmite datele prin php pe email, numai ca atunci cind apas butonul "trimite" merge pe pagina "/send.php" in loc sa ramina pe pagina curenta unde e formularul. Cum sa fac dupa ce sau transmis datele sa ramina pe pagina curenta? Am auzit ca cu ajax e posibil, dar nu merge la mine.

Fisierul send.php

Cod: Selectaţi tot

<?php
$addr="admin@coralclubmoldova.com";//
$messname="New message";
 
$phone=$_POST['phone']; 
 
$message=" Numarul Clientului: $phone";
 
if (mail($addr,$messname,$message))
{ 
echo '<script charset="UTF-8"> window.alert("Ok"); </script>';
 }
else
{ 
echo '<script> alert("Error"); </script>';
} 

MarPlo
Salut
Daca vrei sa transmiti date dintr-un formular la php, fara refresh sau reincarcare alta pagina, solutia e ajax.
Daca nu stii JavaScript /Ajax, poti invata din cursurile de pe site.
Sau, in fisierul "pagina.php" poti aplica functia header(), dupa ce au fost procesate datele, ca sa faca redirect la pagina care vrei (va deschide acea pagina).
Cam asa:

Cod: Selectaţi tot

if (mail($addr,$messname,$message)) {
  header('Location: adresa_pagina_redirect');
  exit;
} 

General
hmm am folosit ajax, iata asa ceva:

Cod: Selectaţi tot

<script type="text/javascript">
$(document).ready(function(){
    $("#form").submit(function() { 
            var form_data = $(this).serialize(); 
            $.ajax({
            type: "POST", 
            url: "/send.php", 
            data: form_data,
            success: function() {
                   alert("Mesajul Dvs a fost trimis!");
            });
    });
});    
</script> 
insa cind apas butonul trimite fereastra alert nu apare, iar pagina isi face doar restart

MarPlo
Se aplica preventDefault() pentru a nu deschide adresa de la "action".

Cod: Selectaţi tot

$("#form").submit(function(e) {
  e.preventDefault();  // STOP default action
// ...
}

General
straniu, ceva nu e ok, acum cind apas butonul "comanda" isi face pagina refresh si gata:
coralclubmoldova.com/activin.html

folosesc 2 fisiere, pagina produsului unde e adaugat acest cod:

Cod: Selectaţi tot

<script type="text/javascript">
            $(document).ready(function(){
            $("#form").submit(function() {
			e.preventDefault();
            var form_data = $(this).serialize(); 
            $.ajax({
            type: "POST", 
            url: "/send.php", 
            data: form_data,
            success: function() {
                   alert("Mesajul Dvs a fost trimis!");
                });
              });
            });
			</script>
          <div class="boxtocall1"><div class="boxtocall">
		  <span class="texttocall"><?php echo $text_tocall; ?></span>
		  <form  method="post" id="form">
		  <input type="text" name="phone" required="required">
		  <input type="submit" name="submit" value="<?php echo $nr_send; ?>" class="button1">
		  </form>
		  </div></div>
si fisierul send.php

Cod: Selectaţi tot

<?php
$addr="admin@coralclubmoldova.com";//
$messname="New message";
 
$phone=$_POST['phone']; 
 
$message=" Numarul Clientului: $phone";
 
if (mail($addr,$messname,$message))
{ 
echo '<script charset="UTF-8"> window.alert("Ok"); </script>';
 }
else
{ 
echo '<script> alert("Error"); </script>';
}

MarPlo
Nu ai adaugat parametrul "e" la function(), la care e aplicat preventDefault().

Cod: Selectaţi tot

$("#form").submit(function(e)

General
Si daca nu merge nici asa, ce poate sa fie la mijloc?

MarPlo
Verifica in consola (F12) sa nu ai erori in codul javascript (acolade /paranteze neinchise cum trebuie).

Subiecte similare