Nasıl tersi PHP Javascript veri geçmek ve?

9 Cevap php

Nasıl bir JavaScript betik siparişinin bir PHP sayfası var ve ona veri pass mı? Nasıl sonra geri JavaScript komut dosyası PHP komut dosyası geçiş veri var mı?

client.js:

data = {tohex: 4919, sum: [1, 3, 5]};
// how would this script pass data to server.php and access the response?

server.php:

$tohex = ... ; // How would this be set to data.tohex?
$sum = ...; // How would this be set to data.sum?
// How would this be sent to client.js?
array(base_convert($tohex, 16), array_sum($sum))

9 Cevap

PHP veri Passing kolaydır, onunla JavaScript üretebilir. Başka yolu biraz zor - Bir Javascript isteği tarafından PHP komut dosyası çağırmak zorunda.

(Basitlik için geleneksel etkinlik kaydı modeli kullanarak) bir örnek:

<!-- headers etc. omitted -->
<script>
function callPHP(params) {
    var httpc = new XMLHttpRequest(); // simplified for clarity
    var url = "get_data.php";
    httpc.open("POST", url, true); // sending as POST

    httpc.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    httpc.setRequestHeader("Content-Length", params.length); // POST request MUST have a Content-Length header (as per HTTP/1.1)

    httpc.onreadystatechange = function() { //Call a function when the state changes.
    if(httpc.readyState == 4 && httpc.status == 200) { // complete and no errors
        alert(httpc.responseText); // some processing here, or whatever you want to do with the response
        }
    }
    httpc.send(params);
}
</script>
<a href="#" onclick="callPHP('lorem=ipsum&foo=bar')">call PHP script</a>
<!-- rest of document omitted -->

get_data.php üretir ne olursa olsun, httpc.responseText görüneceğini. Hata işleme, olay kaydı ve çapraz tarayıcı uyumluluğu XMLHttpRequest okuyucuya basit egzersizler olarak kalır ;)

Ben client-> sunucu mekanizması olarak biçimi ve Ajax (gerçekten XMLHttpRequest) olarak JSON kullanmak istiyorum.

Using cookies is a easy way. You can use jquery and a pluging as jquery.cookie or create your own. Using Jquery + jquery.cookie, by example

   <script>
   var php_value = '<?php echo $php_variable; ?>';

   var infobar_active = $.cookie('php_value');
   var infobar_alert  = any_process(infobar_active);

    //set a cookie to readit via php
   $.cookie('infobar_alerta', infobar_alerta );

   </script>

   <?php 

    var js_value = code to read a cookie

   ?>

I've found this usefull Server-Side and Hybrid Frameworks: http://www.phplivex.com/ http://www.ashleyit.com/rs/

Ben JQuery (ajax, yük, vb) tanışıncaya kadar uzun bir süre için herhangi bir sorun olmadan HTML değerlerini güncellemek için Ashley'nin RSJS Script kullanarak oldum

Ben daha fazla veya daha az sadece Ajax tarif düşünüyorum.

(Veciz cevap için üzgünüm)

Sen AJAX olduğunu PHP javascript veri almak için tek yol değil javascript PHP veri iletebilirsiniz.

Bunun nedeni PHP ile geçerli bir javascript inşa edebilirsiniz ancak PHP yeniden yayınlanmaya almak gerekir PHP veri almak için, ve PHP sadece çıkış işlemek için çalışır, çünkü sen bir sayfa yeniden yükleme veya zaman uyumsuz bir sorgu gerekir olacaktır.

Bir kaç yolu, en önemli varlık alma formu veri veya sorgu dizesi almak var. İşte JavaScript kullanarak bir yöntem. Eğer bir linke tıkladığınızda form verilerini sunacak olan ('mytarget', 'theval') _vals arayacak. Sayfanız mesajlar geri ne zaman bu formu veri seti olup olmadığını kontrol edin ve daha sonra form değerleri geri alabilirsiniz.

<script language="javascript" type="text/javascript">
 function _vals(target, value){
   form1.all("target").value=target;
   form1.all("value").value=value;
   form1.submit();
 }
</script>

Alternatif sorgu dizesi yoluyla alabilirsiniz. PHP çok daha kolay hale Bunu başarmak için _GET ve _SET küresel fonksiyonları vardır.

Ben daha iyi daha yöntemler muhtemelen var eminim, ama bu akla sadece birkaç o bahar vardır.

Bu konuda EDIT: Binası diğerleri yukarıdaki yöntemi kullanarak dedi ne bir çapa etiketi gibi olurdu

<a onclick="_vals('name', 'val')" href="#">My Link</a>

Ve sonra PHP kullanarak form verilerini alabilirsiniz

$val = $_POST['value'];

Eğer JavaScript kullanan linke tıkladığınızda yüzden form verilerini göndermek ve geri bu gelen sayfayı mesajlar daha sonra PHP geri alabilirsiniz tıkladığınızda.

Take a look at this thread: http://stackoverflow.com/questions/402348/getting-setting-cookies-on-different-domains-with-javascript-or-other#406318

Orada bir php dosyasından bir çerez okumak için ajax kullanmak için nasıl yazdı ...

javascript veya tam tersi php veri alışverişi için başka bir yol çerezleri kullanarak, sen php çerezlerinizi kaydetme ve javascript tarafından okunan, bunun için formları veya ajax kullanmak zorunda değilsiniz olabilir

Geçen gün benzer bir sorun haline çalıştırmak. Ben sunucu istemci tarafında veri aktarmak ve bir günlük dosyasına veri yazmak istiyorum, söyleyin. İşte benim çözüm:

Benim basit bir istemci tarafı kodu:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"   "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
   <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" type="text/javascript"></script>
   <title>Test Page</title>
   <script>
    function passVal(){
        var data = {
            fn: "filename",
            str: "this_is_a_dummy_test_string"
        };

        $.post("test.php", data);
    }
    passVal();
   </script>

</head>
<body>
</body>
</html>

Ve sunucu tarafında php kodu:

<?php 
   $fn  = $_POST['fn'];
   $str = $_POST['str'];
   $file = fopen("/opt/lampp/htdocs/passVal/".$fn.".record","w");
   echo fwrite($file,$str);
   fclose($file);
?>

Bu sizin ve gelecek okuyucular için çalışır umuyoruz!