2011-12-29 13 views
0

これは私が持っているjQueryの.load関数です。私がしたいことは、jQueryから渡された値を使ってphp関数を実行することです。私は、jQueryで値をサーバーに渡す方法を理解していないと思います。おそらく.getや.postを使用する必要がありますか?お知らせ下さい。jQuery .load()を使用してパラメータを渡してPHP関数を呼び出す

$(document).ready(function(){ 
    $("#scotland").click(function() { 
    $("#Main").load('thumbs.php #Main', $path=./scotland); 
    }); 
}); 

jQueryスクリプトが対象とするphp div。

<div id="main"> 
<?php 
function thumbnailload($path) 
{ 
$dir_handle = @opendir($path) or die("Unable to open folder"); 
while (false !== ($file = readdir($dir_handle))) { 

if(ereg("(.*)\.(jpg|bmp|jpeg|png|gif)", $file)){ 
echo "<a href='$path/$file'><img class='thumbnail' src='$path/thumbs/thumb_$file' alt='$file'></a>"; 
} 
} 
closedir($dir_handle); 
} 
thumbnailload($path); 
?> 
</div> 

答えて

5

それは、この種を持っているために、早期に通常ありますクライアント側の言語(JavaScript)とサーバー側(PHP)とのやりとりの仕方を知らないという問題があります。しかし、行こう!

"thumbs.php"ページがパラメータを受け取るためには、GETまたはPOST経由でデータを送信する必要があります。

のJavascript:

<div id="main"> 
    <?php 
     if(!empty($_REQUEST['path'])) { // i used $_REQUEST because it receives the data from POST or GET. 
      $path = $_REQUEST['path']; 
      $dir_handle = @opendir($path) or die("Unable to open folder"); 
      while (false !== ($file = readdir($dir_handle))) { 
       if(ereg("(.*)\.(jpg|bmp|jpeg|png|gif)", $file)) { 
        echo "<a href='$path/$file'><img class='thumbnail' src='$path/thumbs/thumb_$file' alt='$file'></a>"; 
       } 
      } 
      closedir($dir_handle); 
     } 
    ?> 
</div> 

thumbs.php

$(document).ready(function(){ 
    $("#scotland").click(function() { 
     $("#Main").load('thumbs.php', {'path': 'scotland'}); 
    }); 
}); 

データが渡されない場合のjQueryのメソッド.LOAD()はGET要求タイプを使用します。私たちの場合、私はデータ({'path': 'scotland'})を渡しているので、リクエストはPOST型です。

便利なリンク

私は=役に立つことを願っ]

+0

ありがとうございました – iwishiwasacodemonkey

1

に変更しますjQueryのスクリプトは:refため

<div id="main"> 
<?php 
$func = $_GET['func']; 
switch($func){ 
    case 'thumbnailload': 
     thumbnailload($_GET['path']); 
    break; 
} 

function thumbnailload($path) 
{ 
$dir_handle = @opendir($path) or die("Unable to open folder"); 
while (false !== ($file = readdir($dir_handle))) { 

if(ereg("(.*)\.(jpg|bmp|jpeg|png|gif)", $file)){ 
echo "<a href='$path/$file'><img class='thumbnail' src='$path/thumbs/thumb_$file' alt='$file'></a>"; 
} 
} 
closedir($dir_handle); 
} 
thumbnailload($path); 
?> 
</div> 

$(document).ready(function(){ 
    $("#scotland").click(function() { 
    $("#Main").load('thumbs.php #Main', {'func': 'thumbnailload', 'path': './scotland'}); 
    }); 
}); 

とにPHPコードを変更http://api.jquery.com/load/

+0

あなたが言及したように私は、ファイルを変更したが、スイッチケースは、真のことはありません、thumbnailloadが呼び出されない場合は、関数定義whの後に2番目の関数呼び出しがヒットします$ pathは決して定義されていないので、結果としてor dieが返されます。どんな洞察? – iwishiwasacodemonkey

+0

なぜこのケースは真ではないのですか?ここでは値 'func'を渡しています: 'thumbnailload''? – sally

関連する問題