Nasıl tersi PHP, JavaScript veri göndermek ve?

6 Cevap php

How do I go about passing data from JavaScript code to PHP and back. Right now, I do this is a round about way:
PHP to JavaScript: I would simply use the inline echo to send the data:

<script type="text/javascript">
    var data = <? echo $target_variable ?>
</script>

VEYA

<script type="text/javascript">
    var data = <?= $target_variable ?>
</script>

JavaScript to PHP: I would create a form element in the JavaScript that would sumbit the data for me to the php file:

<script type="text/javascript">
    var data = targetData;
    document.write("
        <form method=\"post\">
            <input type=\"hidden\" value=\""+target_value+\""></input>
        </form>
    ");
</script>
</script>

Bunu yapmak için daha iyi bir yolu var mı? Şey iyi uygulamalar tür.

6 Cevap

Eğer bir form aracılığıyla bu verileri göndermek istiyorsanız, JavaScript ile form oluşturmak gerekmez. Basitçe, HTML ile görünmez bir form oluşturmak Javascript ile gizli alanını doldurmak ve otomatik olarak hazır olduğunuzda gönderin.

  <form method="post" action="process.php">
    <input type="hidden" name="data" id="data" />
  </form>

  document.getElementById("data").value = "foo";

Bir ajax tarzı moda bu göndermek istiyorsanız, bu son derece kolay hale jQuery, uygulama öneririm. Bir önceki durumda bir jQuery çözeltiye dönüştürülür Not:

$.post("process.php", {data:"foo"}, function(results){
  // the output of the response is now handled via a variable call 'results'
  alert(results);
});

Aşağıdaki kodu jquery ajax kullanarak arka planda sayfasından bir form gönderen bir ajax isteği gösterir. Ben mantıklı umut.

<html>
<head><title>Sample</title></head>
<script language="javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script>
<script language="javascript">
    function submitMe()
    {
       variableString = 'name='+$("#name").val()+'&location='+$("#location").val();
       jQuery.ajax({
       type: "POST",
       url: "http://google.com/some.php",
       data: variableString,
       success: function(msg){
    	 alert( "Data Saved: " + msg );
       }
     });
    }
</script>
<body>
    <form id="xyzForm">
       <input type="text" id="name" name="name"/>
       <input type="text" id="location" name="location"/>
       <input type="button" value="submit" onClick="submitMe();"/>
    </form>
</body>
</html>

Öncelikle, bunu php anlamak gerekir ve javascript farklı bilgisayarlarda çalışan.

Javascript istemci bilgisayarda çalışır oysa php sunucu üzerinde çalışır. Bu şeyleri biraz nondirect yapar. Onlar aynı anda çalıştırmak dont çünkü Yani, php ve javascript, değişkenleri doğrudan değiştiremezsiniz. İlk olarak php, sunucuda çalışan htmk ve JS hazırlar ve müşteriye verir, sonra javascript sunucudan bir şeye ihtiyacı olursa, bunu elde ya da ajax önemli değil, yazılan ya (tekrar sunucuyu çağırır, çalışan javascript istemcileri bilgisayar başında, o hala http isteği).

, Javascript hazırlarken Yani php javascript, siz değişken geçirebilirsiniz hangi pont sadece php çalışır ve javascript değil, ve php javascript gelen bazı ile php sunucu istemci bilgisayarına bir istek yaparak değişken iletebilirsiniz değişkenleri.

Eğer birinden diğerine veri aktarmak için GET veya POST kullanabilirsiniz.

PHP ve JavaScript çifti ile yapabileceğiniz en iyi şey json_encode () ve json_decode () PHP fonksiyonları kullanarak başlamaktır.

Bu iki dil arasındaki nesneleri geçirmek için izin JavaScript Nesne Gösterimi olan JSON verilerini alır. Eğer nesne almak için JS olsun kez, bir değerlendirme yapabilirsiniz.

Aslında veri taşırken tam olarak ne yapıyorsun bağlıdır ama birçok kez ben Ajax kullanabilir ve bunu bakarak başlamak için iyi bir yer olurdu olmalıdır.

Asenkron etkileşim istiyorsanız Eh, veri göndermek için, sunucuya bir zaman uyumsuz POST isteği gerçekleştirmek için XMLHttpRequest kullanabilirsiniz.