2011-10-31 50 views
1

我有一個複選框的列表列表,其中包含來自數據庫的文件的名稱。然後我有按鈕來刪除文件。我有按鈕的下面的代碼:php內部javascript複選框值

<input type='button' id='submit_btn' onclick='eraseFile()' value='DELETE FILES' /> 

和eraseFile功能 ...

<script type="text/javascript" language="javascript"> 
function eraseFile(){ 
    var checekedFiles = []; 

    $('input:checked').each(function() { 
     checekedFiles.push($(this).val()); 
    }); 

    alert(checekedFiles); // it gives me all the checked values..good 

    <?php 
     echo "HElllo World"; 
    ?> 
} 
</script> 

它給出了一個錯誤「失蹤;語句之前」和「eraseFile沒有定義」

是否有可能在JavaScript內編寫php?

+0

<?php echo「alert('Hello World');」; ?> –

回答

1

嘗試回顯一個有意義的JavaScript代碼,「Hello World」它不是一個有效的JS語句。

嘗試像

<?php 
    echo "alert('HElllo World');"; 
?> 
2

是的,這是可能的。

PHP在服務器上被解析,所以你會直接在你的javascript函數中打印「HElllo World」,這可能會導致錯誤。

你可能會尋找做做到以下幾點:

<?php echo 'document.write("Hello World!");'; ?> 
1

哪裏定義您的eraseFile功能?

如果它沒有被定義,直到它被調用的地方,你會得到這個錯誤。


旁註:
您可以php回聲的JavaScript內,除了你有沒有不會做太大...

3

是否有可能裏面寫JavaScript的PHP的對??

除非PHP代碼生成有效的JavaScript,否則不會。

原因eraseFile被稱爲undefined的原因是您的echo語句導致語法錯誤,因爲它在違反JavaScript語法規則的JavaScript函數的末尾打印字符串文字Hellllo World

1

是的,您可以在腳本文件中使用PHP代碼,但代碼在此處生成無效的腳本代碼。

<?php 
    echo "HElllo World"; // becomes: HElllo World (text!) in JS 
?> 
0

是的,這是可能的,包括裏面的JavaScript PHP,因爲PHP會在服務器上之前的頁面內容被髮送到客戶端執行。然而,在你的情況下,什麼是發送如下:

<script type="text/javascript" language="javascript"> 
function eraseFile(){ 
    var checekedFiles = []; 

    $('input:checked').each(function() { 
     checekedFiles.push($(this).val()); 
    }); 

    alert(checekedFiles); // it gives me all the checked values..good 

    HElllo World 
} 
</script> 

這不驗證,如JavaScript,因爲「Helllo世界」不是一個有效的JavaScript命令。這就是爲什麼該功能沒有被正確定義。您需要用實際的JavaScript命令替換「Helllo World」字符串。

2

你的PHP輸出被添加到您的JS功能使您javaascript是這樣的:

<script type="text/javascript" language="javascript"> 
function eraseFile(){ 
    var checekedFiles = []; 

    $('input:checked').each(function() { 
     checekedFiles.push($(this).val()); 
    }); 

    alert(checekedFiles); // it gives me all the checked values..good 

    HElllo World //syntax error here 
} 
</script> 

你可以這樣做:

<script type="text/javascript" language="javascript"> 
function eraseFile(){ 
    var checekedFiles = []; 

    $('input:checked').each(function() { 
     checekedFiles.push($(this).val()); 
    }); 

    alert(checekedFiles); // it gives me all the checked values..good 

    alert("<?php echo "HElllo World"; ?>"); 
} 
</script> 

這將會給彈出說「你好世界'

要將您的Javascript函數的值傳遞給您的PHP腳本,您可以這樣做:

var yourJsVar = {assign value here}; 

url = "yourPHPScript.php?value=" + yourJsVar; 
if (window.XMLHttpRequest) 
{ // Non-IE browsers 
    req = new XMLHttpRequest(); 
    req.onreadystatechange = someFunction; 
    //someFunction will get called when the PHP script is done executing 
    try 
    { 
    req.open("GET", url, true); 
    } 
    catch (e) 
    { 
    alert(e); 
    } 
    req.send(null); 
} 
else if (window.ActiveXObject) 
{ // IE 
    req = new ActiveXObject("Microsoft.XMLHTTP"); 
    if (req) 
    { 
    req.onreadystatechange = someFunction; 
    req.open("GET", url, true); 
    req.send();         
    } 
} 

在你的PHP腳本:

$yourPhpVar = $_GET['value']; 

我提到someFunction上面說的PHP腳本完成執行之後被調用。這是它應該看起來的樣子。 (請注意,這是你的Javascript)

function someFunction() 
{ 
    if(req.readyState == 4 && req.status == 200) 
    { 
     //this will only execute after your AJAX call has completed. 
     //any output sent by your PHP script can be accessed here like this: 

     alert(req.responseText); 
    } 
} 
+1

alert(「<?php echo」HElllo World「; ?>」); – Derek

+0

echo「alert('hello word')」也可以運行 – peterK

+0

,如果在php中我有一個變量,我想擁有與js變量checkedFiles相同的值。我應該怎麼做? – peterK