2011-09-26 15 views
10

PHP Tôi có một số mã như vậy:Chuyển hướng một trang sử dụng Javascript, như Header-> Vị trí

$('.entry a:first').click(function() 
{ 
    <?php header("Location:" . "http://www.google.com"); ?> 
}); 

Tôi muốn biết làm thế nào tôi có thể đạt được điều này sử dụng Javascript.

+2

Vì bạn đang xử lý thẻ neo, tại sao không chỉ sử dụng 'Link text', thay vì javascript? – bfavaretto

+0

Câu hỏi hay. Bit của một lẻ ở đây. Các url sẽ được tổ chức một vài biến và khi người dùng nhấp vào liên kết, nó sẽ được nhìn thấy cho đến trang tiếp theo. –

+0

@KeithDonegan bạn có thể vui lòng xem xét và chấp nhận câu trả lời hoặc cập nhật câu hỏi của bạn với một số chi tiết hơn – rlemon

Trả lời

11

Mã PHP được thực thi trên máy chủ, do đó, chuyển hướng của bạn được thực thi trước khi trình duyệt thậm chí thấy JavaScript.

Bạn cần phải làm chuyển hướng trong JavaScript quá

$('.entry a:first').click(function() 
{ 
    window.location.replace("http://www.google.com"); 
}); 
+0

Tại sao '.replace'? –

+0

Đó là cách tôi nhớ đã học nó một thời gian trước đây. Tôi nghĩ rằng có một số vấn đề với nút ngược của trình duyệt nếu chỉ đơn giản là gán một giá trị mới. Nhưng tôi nghĩ rằng điều này cũng hoạt động, quá – klaustopher

+0

Gần như hoàn hảo. anyway để mở này trong một cửa sổ mới? –

28

Bạn không thể trộn JS và PHP như vậy, PHP được trả lại trước khi trang được gửi đến trình duyệt (ví dụ trước JS đang chạy)

Bạn có thể sử dụng window.location để thay đổi hiện tại của bạn trang.

$('.entry a:first').click(function() { 
    window.location = "http://google.ca"; 
}); 
1

Bạn áp dụng js và php trong hoàn toàn hợp lệ.

Bạn phải hiểu một thực tế là JS chạy trên clientide, một khi trang tải nó không quan tâm, cho dù trang là một trang php hoặc jsp hoặc asp. Nó thực thi DOM và chỉ liên quan đến nó.

Tuy nhiên bạn có thể làm một cái gì đó như thế này

var newLocation = "<?php echo $newlocation; ?>"; 
window.location = newLocation; 

Bạn thấy đấy, vào thời điểm kịch bản được nạp, các mã trên làm cho thành hình thức khác nhau, một cái gì đó như thế này

var newLocation = "your/redirecting/page.php"; 
window.location = newLocation; 

Giống như trên, có rất nhiều khả năng của sự hợp nhất giữa php và j và một trong những bạn đang làm không phải là một trong số chúng.

Các vấn đề liên quan