1

問題を解決するための適切な例を見つけることなく、ほぼ1時間検索してきました.PHP関数を呼び出したいです(ページの読み込み時に実行されるjavascript関数から指定されたパスとの単純なリンク解除です)。私は AJAX がまったく得意ではなく、index.php ファイルに含まれる PHP 関数を JavaScript コードから直接呼び出す方法を理解したいと考えています。

これが私のjavascriptコードスニペットにあるものです:

var xmlhttp;

if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","/dev/templates/absolu/index.php?s=" + Math.random(),true);
//@unlink(listeImages[i].toString());
4

3 に答える 3

5

関数名(将来さらに多くの関数がある場合に備えて)とparamsをgetparamsとして送信します

var fileToDelete;
var xmlhttp;

    if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
    }
    else
    {// code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.open("GET","/dev/templates/absolu/index.php?s=" + Math.random()+"&action=delete&file="+fileToDelete,true);

PHPスクリプトでは、次のように処理する必要があります。

<?php
if (isset($_GET['action'])){
  switch($_GET['action']){  
     case 'delete':
       @unlink(listeImages[$_GET['action']].toString());
     break;
     //Other functions you may call
  }
  exit;
}
//The rest of your index.php code
?>
于 2012-06-26T13:59:02.140 に答える
3

ajax 呼び出しから php 関数を直接呼び出すことはできません。ブラウザーからページ index.php を開いた場合と同様に、php スクリプトのみが呼び出されます。

どの関数を呼び出す必要があるかを知るために、php スクリプトにテストを追加する必要があります。:

ページ /dev/templates/absolu/index.php?mode=delete_image&image=filename.png を ajax で呼び出す場合

<?php
if($_GET['mode'] == "delete_image") {
    unlink($_GET['image']);
}
?>

誰でもこのページを呼び出せるように注意してください。削除される内容を確認し、GET パラメータで受け取る内容を確認する必要があります。/dev/templates/absolu/index.php?mode=delete_image&image=index.phpここで、php スクリプト ページを削除するために呼び出すことができます。

于 2012-06-26T13:57:39.200 に答える
0

jquery (http://jquery.com/) を使用すると、次のように呼び出すことができます。

$(document).ready(function() {
  $.get("/dev/templates/absolu/index.php?", {
    'action': 'delete',
    'other': 'get-parameters',
    'r': Math.random()
  });
});

サーバー側の例:

<?php

switch( $_GET['action'] ) {
  case 'delete': 
    // call unlink here
  break;
  case 'dosomething':
    // else
  break;
  default: 
    // Invalid request
  break;
}

ファイルの削除は責任を持って処理する (セキュリティ チェックを実施する) 必要があることに注意して、間違ったファイルが誤ってまたは意図的に削除されないようにしてください。

于 2012-06-26T13:55:15.997 に答える