Bir Javascript içinde PHP yöntemlerine erişmek nasıl?

7 Cevap php

I have made a method which will delete a file. first i echo the url to this file. like this

echo "<a href='$fulr'>$filename</a>";

now basicaly i want to call the function deletefile($file); how can i do it like this

echo "<a onclick='$this->deletefile($filename)' href='$fulr'>$filename</a>";

bile doktorunun nedir?

Ya da nasıl ben php kodu içinde benzer bir şey uygulayabilirsiniz?

7 Cevap

Tarayıcı / sunucu iletişimi hakkında yanlış bir fikir gibi görünüyor. Bunu yapmak ya gerekir:

<?php
...
printf("<form name=\"delfilefrm\" action=\"delfile.php\" method=\"POST\">
        <input type=\"hidden\" name=\"delfile\" value=\"%s\" />
        <input type=\"submit\" value=\"Delete %s\" />
    </form>", $filename, $filename);
...
?>

Sunucu, bu yüzden bağlantı sunucu üzerinde bir komut gider, ya da JavaScript kullanın. JQuery adlı yazı () işlevi veya benzer bir AJAX işlevi kullanarak öneriyoruz:

$.post("delfile.php", { file: \"$filename\" } );

Unutmayın: security, security, security ... then graceful degradation

Ve teşekkürler beni çabuk unutuldu temel bir noktada "ağaçlar için odun görmek" için izin verdiği için, David Dorward waiwai933.

Bu durumda, PHP web sunucusu üzerinde çalışan ve tarayıcıya bazı çıktı gönderir.

Tarayıcı sonra JavaScript gibi bu çıktı işler.

Doğrudan PHP erişmek için hiçbir yolu yoktur. Geri sunucuya bir HTTP isteği göndermek zorunda.

Bu basit bir bağlantı (ama işlemlerini güvenli (veya başka bir bot sitenize üzerinde yürümek ve her şeyi silmek olacaktır olmalıdır GET, bir silme dosya işlem için bunu yapmaz), bir form veya olabilir gerçekten JavaScript dahil etmek istiyorsanız -. XHR (veya Ajax gerçekleştirmek için kullanılabilecek bazı diğer nesne) gibi YUI veya jQuery burada ağır kaldırma size yardımcı olabilir gibi Kütüphaneler.

Her iki şekilde (form veya Ajax), muhtemelen POST verileri silmek istediğiniz dosya hakkında veri koyarak bitireceğiz. Sizin PHP komut dosyası ($_POST gelen ve istediğiniz işlevi) bu okuyacaktır.

Eğer Ajax rota aşağı gitmek yaparsanız ... ve, build on things that work unutmayın.

Size JavaScript PHP kodu arayamazsın.

Yapmanız CAN sağ PHP yöntemini çalıştırmak için, gerekli parametreleri geçirerek, bir PHP komut dosyası için bir GET / POST yerleştirin (bu bir web sunucusu üzerinde oluyor varsayarak).

PHP içinde, biraz daha kolay. HTML tükürerek ediyorsanız, bir JavaScript işlevini çağırmak (ya da sadece bazı JavaScript çalıştırmak) için bir komut dosyası düğüm ekleyebilirsiniz.

Javascript php kodu çalıştırmak edemez ve javascript ile bir dosyayı silemezsiniz, çünkü bunu ben böyle bir şey yapmak gerektiğini düşünüyorum şekilde bunu yapamazsınız:

if(isset($_GET['delete'])) unlink($_GET['delete']);
....
echo "<a href='".__FILE__."?delete=$fulr'>$filename</a>";

Bunu yapabilirsiniz:

php: Bunu deletefile.php çağrı sağlar

<?
$file = $_POST['filename'];

deletefile($file);
?>

jQuery:

$('a').click(function(){
   $.ajax({
      method: 'POST',
      url: 'deletefile.php',
      data: "filename=" + $(this).text(),
      success: function(data) {
        alert('File deleted.');
      }
   });
   return false;
});

html:

<a href="#" >filename<a/>  <!-- filename is the name of your file... -->

Size JavaScript PHP kodu arayamazsın.

ama u bunu yapmak için xajax kullanabilirsiniz

or check this post. this will be better solution using ajax

Eğer Javascript PHP fonksiyonları aramak istiyorsanız o zaman bu almak gibi yaklaşık olarak yakındır: http://www.phplivex.com/

I'ved bu Lib birçok kez kullanılır ve ben gerçekten seviyorum.