2011-11-15 31 views
0

我試圖使用JS來指導用戶登錄他們的個人資料頁面。我需要獲取URL中的配置文件ID,但它不起作用。在JS文件中使用PHP

  if(data == 'success'){ 
       window.location = 'profile.php?id=<?= $user_id ?>'; 
      } else { 
       $('#signin_errors').html(data); 
      } 

有什麼建議嗎?

+1

你有短PHP標籤從php.ini中開啓?或使用完整的PHP標籤。 – Sarfraz

+1

你有[short_tags啓用](http://php.net/manual/ini.core.php)? –

+0

正如答案所述,確保它在一個PHP文件(或者您設置爲使用PHP進行處理的文件)中。 –

回答

3

如果這是它<script src="blah.php"></script>列入<script src="blah.js"></script>變化的文件,並在blah.php

<?php header("Content-type: application/x-javascript"); 
$user_id = "whatever"; ?> 

if(data == 'success'){ 
    window.location = 'profile.php?id=<?php echo $user_id ?>'; 
} else { 
    $('#signin_errors').html(data); 
} 
0

在你的JavaScript文件中不能添加PHP的,因爲除非你把它添加到你的httpd.conf

AddType application/x-httpd-php .php .js 
+0

我建議不要這樣做。這樣做會在服務器上創建太多的工作。最好在.php文件中使用js代碼並相應地工作 – brunoais

+0

我只是解釋了PHP的工作原理。我不知道他的具體情況.. :) – SERPRO

0

如果你可以直接把這個給PHP文件這將您的服務器將不承認它工作。例如:

<?php 
echo "blablabla"; 
?> 
<script> 
if(data == 'success'){ 
       window.location = 'profile.php?id=<?= $user_id ?>'; 
      } else { 
       $('#signin_errors').html(data); 
      } 

</script> 

但是,如果你把這個給js文件,它不會工作!因爲它不是PHP文件,所以它是JS文件。 Apache不會讀取JS文件中的php代碼。

1

堅持這個代碼就加入這行到你的.htaccess

AddType application/x-httpd-php .php .js 
2

你要打印或回聲變量。

if(data == 'success'){ 
    window.location = 'profile.php?id=<?php print $user_id; ?>'; 
} 
else { 
    $('#signin_errors').html(data); 
} 
0

我認爲最好的方法是在php文件中執行此操作,並在其中回顯您想要的腳本。一定要逃避所需的字符。

喜歡的東西:

echo "<script type=\"text/javascript\"> 
window.addEvent('domready', function() { 

    myjavascriptcode(); 
$('mybutton').set('html', '<input id=\"mybutton\" type=\"submit\" value=\"" . $php_variable . "\" />'); 
}); 
</script>";