Jquery Post + çalıştırmak php dosyası>

6 Cevap php

Burada jquery yazı hakkında benim kodudur. Ben bir şekilde iş yapamazsınız. Ben saatlerce: (Ben burada ne özledim ben kodu çalıştırdığınızda, bu aynı sayfayı yükler:?! (

I want it to run the php code under query.php and hide the contact form and give "thanks!" message at send submit button click. (with no page loading)

takdir yardımcı olur!


PHP Form

<form id="commentForm" name="contact" method="post" action="">
    <ul id="contact-form">
    	<li><label>Full Name: *</label><input type="text" name="full_name" class="txt_input required" /></li>
    	<li><input type="submit" value="Send" id="btnsend" name="btnsend" class="btn_submit" /></li>
    </ul>
</form>


SCRIPT

$(function() {

    $("#btnsend").click(function() {
        var dataString = 'fullname='+ escape(full_name);
        $.ajax({
            type: "POST",
            url: "query.php?act=contact",
            data: dataString,
            success: function() {
            $('#contact-form').hide();
		$('#contact-form').html("<p>thanks!</p>")
        .fadeIn(1500, function() {$('#contact-form').append("");});
	   } 

    });

    return false;
    });
 });

6 Cevap

var dataString = 'fullname='+ escape(full_name);: Senin sorun yatıyor

Deneyin: var dataString = 'fullname='+ escape(document.contact.full_name.value);

Örn:

<!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" xml:lang="en">
<head>
 <title>Example</title>

 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
 <script type="text/javascript">
  $(function() {
   $("#btnsend").click(function() {
    var dataString = 'fullname='+ escape(document.contact.full_name.value);

    $.ajax( {
     type: "POST",
     url: "query.php?act=contact",
     data: dataString,
     success: function() {
      $('#contact-form').hide();
      $('#contact-form').html("<p>thanks!</p>").fadeIn(1500, function() { 
       $('#contact-form').append("");
      });
       }  
    });

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

<body>
 <form id="commentForm" name="contact" method="post" action="">
  <ul id="contact-form">
   <li><label>Full Name: *</label><input type="text" name="full_name" class="txt_input required" /></li>
   <li><input type="submit" value="Send" id="btnsend" name="btnsend" class="btn_submit" /></li>
  </ul>
 </form>
</body>

Bu başarı fonksiyonunu çağrıyı geri yürütmek değil başka olsa emin olun query.php bulunmaktadır.

Ayrıca emin (sadece tıklama değil basışı için bir olay işleyicisi tanımlanmış) düğmesini tıklatın ve normalde formu göndermek gibi ENTER tuşuna basın değil yapmak

Sen preventDefault düğmesine tıklayın veya formun teslim olayı yanlış dönebilirsiniz:

$(function() {
    $("#btnsend").click(function(e) {
            e.preventDefault();
            var full_name = $('input["name=full_name"]').val();
            var dataString = 'fullname='+ full_name;
            $.ajax({
              type: "POST",
              url: "query.php?act=contact",
              data: dataString,
              success: function() {
                    $('#contact-form').hide();
                    $('#contact-form').html("<p>thanks!</p>")
                                      .fadeIn(1500, function() {$('#contact-form').append("");});
               }
        });
    });
});

veya:

$('#commentForm').submit(function() {
    return false;
});

Deneyin:

$(function() {

$("#btnsend").click(function() {

        $.ajax({
          type: "POST",
          url: "query.php?act=contact",
          data: { fullname: $('input[name=full_name]').val() },
          success: function() {
        $('#contact-form').hide();
                $('#contact-form').html("<p>thanks!</p>")
        .fadeIn(1500, function() {$('#contact-form').append("");});
           } 

    });

    return false;
});
});

Burada en az 3 sorunları olduğunu düşünüyorum. Bu bir değişken sanki Öncelikle, FULL_NAME başvuran. Ben bu fonksiyonu iptal eder ve varsayılan eylem (post) devam etmek için izin veren bir javascript hatası neden inanıyorum. İkincisi, muhtemelen act dahil form parametreleri TÜM kodlamak gerekir. Bu geçersiz bir URL gönderilmesine neden olabilir ve böylece eylem çağrılan edilmiş değil görünüyor - Firefox / Firebug ile gönderilen isteği bakarak kontrol edebilirsiniz. Üçüncü olarak, bir paragraf elemanı ile bir listenin içeriğini değiştirmek için çalışıyorsunuz. Bu geçersiz HTML. Ben paragraf ile tüm listeyi değiştirmek istiyorum (ve ben boş bir dize yüzden onu ihmal ettik sonunda ne eklenerek alamadım).

Bu yüzden sunulan nasıl önemli değil - ben formun gönderme olayı üzerinde çalışmak için bu değiştirdik unutmayın. Ayrıca bana tekrar formu bakmak zorunda değil biraz jQuery incelik sağlar.

 $('#commentform').submit(function() {
   var $this = $(this);
   $.ajax({
     url: "query.php",
     data:  { 'act': 'contact', 'full_name', $('input[name="full_name"]').val() },
     success: function() {
        $('#contact-form').remove();
        $this.hide().html("<p>thanks!</p>").fadeIn(1500);
     }  
  });
  return false;
}

Bu jQuery ile doğrudan PHP işlevini çağırmak için benim yolum

// in html file
<script language="javascript">
  $.post("thisisphp.php",{ func:"true", varbl: 'valu2' },function(data) {
    $('.thisdiv #subdiv').html(data);
  });    
</script> 

PHP dosyası thisisphp.php

<?php
    // include connection creating file.
    require_once("database.php");
    $db = & new Database();

    function getDateAppointments($varible1, $varible2, $db) {    
      $q_appointment = "SELECT * FROM `tbl_apoint` WHERE ap_date = '".$varible1."'"; 
      $s_appointment = $db->SelectQuery($q_appointment);

      while($r_appointment = mysql_fetch_array($s_appointment))
      {
        echo '<div id="appoinment">'.$r_appointment['ap_title'].'</div>'; 
      }     
    }    

    /* This function for set positions of the day */        
    switch($_POST['func']) {
      case 'true':
        getFunc1($_POST['varbl'], 'S0001', $db);
        break;
      default:
        getFunc2($_POST['varbl'], 'S0001', $db);        
    }    
?>

this size yardımcı olabilir?

PS: Eğer onSucces içinde sizin hidding ve gösteren formu script koymak ve onError işlevleri olabilir.