2009-11-25 56 views
5

Giả sử, tôi chỉ có thể sử dụng mã html trong một trang (gọi nó là index.html).Gọi PHP trong trang html

Vì vậy, bây giờ, tôi muốn kiểm tra điều gì đó bằng cách sử dụng php (gọi nó là userCheck.php).

Vì vậy, có thể tôi muốn html giao tiếp với các tệp php.

Ví dụ, một cái gì đó giống như

khi người dùng truy cập vào index.html, nó sẽ kiểm tra userCheck.php, vì vậy userCheck nói có, thì có thể tiến hành xem nó hoặc nếu không nó sẽ chuyển hướng đến userCheck.php.

Có thể sử dụng javascript hoặc ajax không? Tôi là người mới vào hai người đó.

Cảm ơn bạn

Trả lời

3

Bạn có thể sử dụng javascript để tìm nạp một số dữ liệu vào html của bạn từ php của bạn.

Ví dụ sử dụng jQuery (đặt này trong html của bạn):

<script type="text/javascript" charset="utf-8"> <!-- javascript in html --> 
    $(document).ready(function(){ // start here, if DOM is loaded 

    // request data from php script ... 
    // we expect the userCheck.php script to actually 'return' something, 
    // some data ... 
    $.get("userCheck.php", function(data){ 
      alert("Data Loaded: " + data); 
    }); 

    // or with some params to the php 
    // e.g. userCheck.php can handle username and favcolor parameters 
    $.get("userCheck.php", 
      {"username" : "lazy", "favcolor" : "FFFFFF" },   
      function(data){ alert("Data Loaded: " + data); 
    }); 



}); 
</script> 

Nếu đây là tất cả hoàn toàn mới đối với bạn, xin vui lòng làm cho mình một đặc ân và đọc một số cuốn sách introductional, mà sẽ cung cấp cho bạn từ có giá hiểu biết - some random book tips from O'Reilly , Google Tech Talk on jQuery

+0

slick. Tôi sẽ kiểm tra lời khuyên. –

+0

Làm cách nào để gửi dữ liệu vào tệp php. Tôi muốn gửi, giả sử userID để php, do đó, php có thể trở lại. –

+0

tất cả được viết trong sách (cộng/xem chỉnh sửa): http://docs.jquery.com/Ajax/jQuery.get – miku

0

Không chắc chính xác những gì bạn đang sau, nhưng có thể bạn chỉ cần đặt tên index.php trang của bạn, hãy viết tất cả html của bạn trong nó, và khi cần thiết, chèn mã PHP của bạn như <?php ...code... ?>? PHP chạy phía máy chủ và có thể hiển thị HTML khác nhau tùy thuộc vào bất kỳ yếu tố nào của bạn.

+0

Tôi tin rằng anh ấy muốn nói chuyện với PHP từ một trang mà chỉ cho phép HTML . Vì vậy, tìm cách phá vỡ hệ thống. –

+0

Vấn đề là, tôi không thể sử dụng .php, cần phải có trong html –

1

Nếu máy chủ của bạn không cho phép tệp php, thì bạn không thể thực hiện trực tiếp. Bạn có thể muốn đặt tập tin php của bạn trên một máy chủ khác, hỗ trợ php, và gọi nó với ajax, mặc dù. Nhưng bạn phải chắc chắn rằng nhà cung cấp máy chủ php của bạn cho phép điều đó.

+0

cho phép php nhưng vì chương trình tôi đã sử dụng chỉ có thể xuất ra các trang html. –

0

JavaScript có thể được sử dụng để gọi và liên lạc với một trang HTML qua JSON.

Dưới đây là một ví dụ sử dụng JQuery và chọn chuỗi plug-in để cư một hộp thả xuống dựa trên việc lựa chọn một thả xuống trước .. trang

HTML:

$('#selectbox1').selectChain({ 
     target: $('#selectbox2'), 
     url: 'selectlist.php', 
     data: { ajax: true } 
    }).trigger('change'); 

selectlist.php

if (@$_REQUEST['ajax']) { 
$json = array(); 
    if ((isset($_REQUEST['selectbox1'])) && ($_REQUEST['selectbox1'] != '')){ 
     $results = mysql_query('SELECT * FROM table WHERE id="'.$_REQUEST['selectbox1'].'"') or die ("Error: ".mysql_error()); 
     while($row = mysql_fetch_array($results)) { 
      $json[] = '{"id" : "' . $row['id'] . '", "label" : "' . $row['name'] . '"}'; 
     } 
    } 
    echo '[' . implode(',', $json) . ']'; 
} 
2

Bạn muốn thiết lập Trình xử lý Apache để tệp có phần mở rộng .html được phân tích bằng php. Làm điều này thông qua một .htaccess tập tin đơn giản nằm ở thư mục gốc web của bạn:

AddHandler application/x-httpd-php .html 

Bây giờ bạn có thể sử dụng PHP bên trong các trang .html. Không cần hack AJAX bổ sung, hoặc giao dịch với người dùng NoScript hoặc các trình duyệt yếu ớt JS.

+0

không đi từ khi sản xuất html là phần mềm bên ngoài, không apache –

+0

@ UFOman: Tôi giả định rằng các tệp HTML được phục vụ bởi apache? Bạn không thể chỉnh sửa chúng sau khi chúng được tạo ra? –

0

UFOman nói "máy chủ cho phép php nhưng vì chương trình tôi sử dụng chỉ có thể xuất ra các trang html" Nghe có vẻ như tôi thực sự cần hiểu cách kết hợp các trang html với mã php.Cách đơn giản nhất (chưa phù hợp) để làm những gì bạn muốn là như thế này:

1) Sử dụng Notepad hoặc TextEdit, mở file HTML chương trình đầu ra của bạn
2) Chọn tất cả và Sao chép nội dung
3) Tạo tệp được gọi là yourPageNameTemplate.php và Dán vào đó. Giả vờ nó trông như thế này:

<html> 
<body> 
    <form method="post"> 
     <input type="text" name="user_name" value="" /> 
     <input type="submit" name="submit" value="submit" /> 
    </form> 
</body> 
</html> 

4) Tạo ra một tập tin gọi là yourPageName.php và đặt một cái gì đó như thế này trong nó:

<?php 

if(isset($_POST['submit']) && isset($_POST['user_name'])) 
{ 
    echo 'Thanks for submitting the form!'; 
} 
else 
{ 
    include 'yourPageNameTemplate.php'; 
} 

?> 

Điều đó sẽ chỉ làm việc tốt. Bây giờ, nếu bạn muốn thêm một số kiểm tra lỗi, một thông báo lỗi cho Mẫu của bạn, chúng tôi có thể làm điều đó khá đơn giản.

5) Sửa yourPageNameTemplate.php như thế này:

<html> 
<body> 
    <?=$form_error_message?> 
    <form method="post"> 
     <input type="text" name="user_name" value="<?=$form_user_name?>" /> 
     <input type="submit" name="submit" value="submit" /> 
    </form> 
</body> 
</html> 

6) Sửa yourPageName.php như thế này:

<?php 

$form_error_message = ''; 
$form_user_name = ''; 
if(isset($_POST['user_name']) && strlen($_POST['user_name']) < 5) 
{ 
    $form_error_message = 'User Name must be at least 5 characters long'; 
    $form_user_name = $_POST['user_name']; 
} 

if(isset($_POST['submit']) && empty($form_error_message)) 
{ 
    echo 'Thanks for submitting the form!'; 
    //it would be better to include a full 'thank you' template here, instead of echoing. 
} 
else 
{ 
    include 'yourPageNameTemplate.php'; 
} 

?>