2016-04-14 20 views
0

該腳本將PDF分成單頁並保存。如果我點擊一個圖像,它會改變CSS類,併成爲黑色和白色。Php - Javascript - 我怎麼知道哪些頁面是彩色的,哪些是黑白的?

現在我的問題是要了解哪些頁面和多少頁面的顏色爲

什麼是理解它的最好方法? TK

<?php 
 
$pdf='aaa.pdf'; 
 
$image = new Imagick(); 
 
$image->pingImage($pdf); 
 
$x = $image->getNumberImages(); 
 
echo " 
 
<!DOCTYPE html> 
 
<html> 
 
<head> 
 
</head> 
 
<script> 
 
function change_autorefreshdiv(id){ 
 
    var NAME = document.getElementById(id) 
 
    var currentClass = NAME.className; 
 
    if(currentClass == 'bn'){ 
 
     NAME.className = 'colore'; 
 
    } else { 
 
     NAME.className = 'bn'; 
 
    } 
 
} 
 
</script> 
 

 
<style type='text/css'> 
 
.bn{ 
 
     -webkit-filter: grayscale(100%); 
 
     -moz-filter: grayscale(100%); 
 
     -ms-filter: grayscale(100%); 
 
     -o-filter: grayscale(100%); 
 
     filter: grayscale(100%); 
 
} 
 
body { 
 
     background: #000; 
 
    } 
 
img {padding:5px;} 
 
</style> 
 

 
<body>"; 
 
for ($i=0; $i <= $x; ++$i){ 
 
\t $im = new Imagick(); 
 
\t $im->setResolution(20, 20); 
 
\t $im->readImage(''.$pdf.'['.$i.']'); 
 
\t $im->setImageFormat('jpeg'); 
 
\t $im->setImageCompression(imagick::COMPRESSION_JPEG); 
 
\t $im->setImageCompressionQuality(100); 
 
\t $jpegpath = 'jpeg/'.$pdf.'['.$i.'].jpeg'; 
 
\t $im->writeImage($jpegpath); 
 
\t echo " 
 
    <img width='170px' height='220px' 
 
    src='$jpegpath' id='$i' class='colore' 
 
    onclick='change_autorefreshdiv($i)'></img>"; 
 
} 
 
echo " 
 
    </body>";
img script in browser

+0

你想讓_Javascript_知道哪個是哪個,或者_PHP_知道什麼? –

+0

的PHP知道! –

+0

這裏我們沒有足夠的幫助。你是說你想讓PHP瞭解PDF的頁面是黑白的,還是用戶點擊了圖片?爲什麼它首先從顏色變爲b + w?這裏的目標是什麼? – larsAnders

回答

0

PHP運行服務器上,將結果發送(輸出)上下行至瀏覽器,然後運行停止,這是完成。
瀏覽器接收輸出,然後呈現HTML並運行JavaScript。此時,PHP代碼退出遊戲

對於PHP(服務器,真的)知道哪個是瀏覽器必須告訴它,通過發送這些事實回到服務器。
這可以通過表單提交或ajax帖子完成; ajax可以在結束時通知服務器一次,或者在每個「頁面」被選中(單擊)和未選中時連續通知服務器。

無論是表單提交還是ajax,這可能是您的服務器的POST,例如http://yourserver.com/yourapplication/process_selections.php - 或者可以使用首先發送該文件的.php文件。
重要的是要明白,這是完全獨立的您發佈在您的問題的PHP代碼。 代碼已經完成運行。即使你發回到同一個PHP文件,這是一個新的調用,所以你以前設置的變量都沒有被使用。

你必須決定將信息發回服務器的策略,一旦你有可能會有更多的問題 - 以後再問這些問題作爲具體問題;該主題過於寬泛,無法涵蓋這個問題的答案。


提示:在瀏覽器中,你可能會想使用JavaScript來選擇所有與.bn和/或.colore類的項目,併發送有關這些回服務器的信息。

+0

好吧,感謝您的回覆,因此最簡單的兩個選項是:1)創建一個表單(帶複選框),其中我把圖像(PHP)或2)我計算了多少次出現類css bn與相應的ID (頁數)(javascript)?對於第二個選項(你的提示)有你的建議嗎? tk –

+0

如果你沒有使用AJAX的經驗,你可能想堅持使用'

' - 但是,你可以隱藏複選框並在頁面圖像被點擊時使用javascript在幕後檢查它們,或者你可以讓它們顯示,然後選中複選框並在選中複選框或圖像時更改圖像類('.bn'或'.colore')。或者,使用圖像作爲複選框標籤將圖像點擊複選框。看我的小提琴:https://jsfiddle.net/stephen61/pa9s4ktr/ –

+0

完美!謝謝!! –

相關問題