任何人都可以告訴我爲什麼這段代碼不起作用嗎?爲什麼這個代碼不工作?
<?php $err=1; ?>
<img src="334234234234234.gif" onError="<?php $err=0; ?>" />
<?php echo "<br />" . $err; ?>
即使圖像存在,仍然執行onerror。爲什麼?
任何人都可以告訴我爲什麼這段代碼不起作用嗎?爲什麼這個代碼不工作?
<?php $err=1; ?>
<img src="334234234234234.gif" onError="<?php $err=0; ?>" />
<?php echo "<br />" . $err; ?>
即使圖像存在,仍然執行onerror。爲什麼?
HTML無法設置PHP變量。這些只能在服務器上設置。 IMG標記的onError方法無法訪問PHP變量。
頁面生命週期:
請注意,您試圖將項目3與項目1組合在一起,這不能在語義上完成。
做嘗試的唯一方法就是將JavaScript方法附加到該事件,並在onError方法運行時與服務器通信。但是這可能會比你想象的更復雜一些。
由於php是服務器端代碼,無論是否發生onError,<?php $err=0; ?>
都會執行。您需要使用其他方法或Javascript(或其他客戶端代碼)來執行此操作。
如果你只是想打印出一個變量到屏幕上,如果圖像沒有加載,你可以使用onError="alert('ERROR: Image did not load');"
來創建一個彈出框(或者你可以使用javascript來修改頁面上的html) ,但如果您想與服務器通話,則必須使用JavaScript提交表單或使用AJAX方法。
您的代碼將總是產生這樣的輸出:
<img src="334234234234234.gif" onError="" />
<br />0
的onError
JavaScript處理是空的,因爲它裏面的PHP代碼不產生輸出。
是您發佈實際代碼或簡化代碼的代碼?目前尚不清楚你想要完成什麼。
如果你正在檢查的文件PHP的存在提供了一個很好的功能,從頁面
修改例子。
<?php
$filename = '/path/to/334234234234234.gif';
if (file_exists($filename)) {
echo "<img src='334234234234234.gif'/>";
} else {
echo "The file $filename does not exist";
}
?>
回答你的問題。
即使圖像存在,仍會執行 onerror。爲什麼?
onError從不執行。它似乎執行,因爲您在腳本的末尾顯式輸出$ err變量。如果你使用上面的代碼,你可以實現我認爲是預期的結果而不依賴於JavaScript事件。
你們爲什麼不投這個票?我記得我在開始使用PHP時犯的錯誤 - 這是一個誠實的錯誤。不要阻止新來者。 – Sampson 2009-06-22 17:21:30
我知道我真的只是新的PHP。誠實的錯誤是什麼意思?請你澄清一下。 – tinkerBOY 2009-06-23 15:54:52