2011-07-08 161 views
1

我不確定這是否可能,但目前我在我的頁面上有一個表單,用戶可以插入他們的興趣點,在這個表單下面有3個PHP變量(當前沒有顯示,因爲沒有賦值給它們)。用AJAX填充PHP變量?

當用戶輸入興趣並點擊提交時,我的AJAX接管,填充表格,然後重新加載頁面,以使變量現在顯示爲具有值。

是否有可能不必刷新頁面,所以我可以說「如果成功$ var ='value';」?

我希望這並不聽起來太混亂了,感謝

+1

您應該先嚐試一下,如果無法獲取,請發佈您的代碼。 – helloandre

+0

你能更清楚的問題嗎?你所描述的只能通過Ajax完成。您不必重新加載頁面即可更改碎石的數據。 Ajax可以做到這一點。從這個意義上講,你可以從一開始就跳過PHP實現。 – user482594

+0

爲什麼不同時使用你的ajax來顯示輸入到表單控件的值,而不是將它們賦值給php變量?你不需要刷新頁面。 – Chibuzo

回答

1

既然你已經在使用AJAX,你爲什麼不只是做使用Javascript的邏輯是什麼?如果你使用jQuery,有一個成功的回調函數執行你想要的代碼。

將數據從AJAX發送到PHP的問題是PHP是服務器端語言,而AJAX是客戶端語言。當瀏覽器看到頁面時,PHP已完全執行並以HTML/CSS/Javascript等形式返回給您。

1

不,您不能。當HTML在瀏覽器中呈現/顯示時,PHP很可能早就完成了生成HTML的工作。您可以通過AJAX處理程序對值進行往返處理,然後填充顯示值的頁面中的位置,但是何時爲什麼會出現往返跳動?只需要AJAX調用就可以在當時和之後填入值。

1

這是完全可能的,而且很容易做到。只要再拍PHP腳本,並從你的表單頁面的JavaScript調用它(我會假設你正在使用jQuery):

$('#mysubmit').click(function() { 
    $.getJSON(
     'form_ajax.php', // This is the php file that will be called 
     { formVar1: $('#form-var-1').val() }, // Add all your form data here 
     function(data) { 
      // This is the function that is called after the php script is 
      // done executing. The 'data' variable will contain the $data 
      // array you see in the following php file. 
     } 
    ); 
}); 

我更喜歡使用JSON,但其他方法都一樣好。請查閱getJSON()ajax()的文檔。你的php文件看起來是這樣的:

<?php 
    $data = array(); 
    if ($_SERVER['REQUEST_METHOD'] == "POST") { 
     $data['formVar1'] = $_POST['formVar1']; 
    } 
    echo json_encode($data); 
?> 

當然,你可能會做更多的表單數據。此外,還有很多其他方法可以幫助您找到最適合您的需求。