[英]How to pass value from JavaScript function to PHP variable?
我有一個處理文本輸入的onkeydown事件的JavaScript。 如何將值從此輸入或javascript函數傳遞給php變量? 我不確定表單是否可以正常工作,因為javascript函數在其他地方調用了另一個Ajax函數
<?PHP
$valueOfInput = //how to assign this variable to value from text input ??
?>
<html>
<head>
<script>
function myFunc(e){
if (e.keyCode == 13)
{
pass_data_to_Ajax();
}
}
</script>
</head>
<body>
<div >
<input type="text" id = "lname" value="" onkeydown="myFunc(event)"/>
</div>
</body>
</html>
簡單! 使用HTTP請求,或者通過將值放在URL中來創建GET
變量,或者通過將值放在請求標頭中來創建POST
變量。 這可以通過HTML表單,AJAX,JavaScript重定向或其他幾種方法來完成。
然后,您可以在PHP中使用數組: $_GET
, $_POST
或$_REQUEST
來檢索變量。
例如: $_GET['my_var']
容易,但是要取決於您要做什么。 這是一些示例代碼片段:
<?php
if(!empty($_POST['lname'])) {
$valueOfInput = $_POST['lname'];
die(json_encode(array('status' => 'success', 'lname' => $valueOfInput)));
}
?>
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
</head>
<body>
<input type="text" id="lname" name="lname" value="" />
<script type="text/javascript">
$(document).ready(function() {
$("#lname").on("keypress", function() { // waiting for keypress event to be fired
setTimeout(function() { // delay to have the key value inserted into input, and affect value param
$.post(document.location.href, { lname: $("#lname").val() }, function(data) { // sending ajax post request
console.log(data);
});
}, 50);
});
});
</script>
</body>
</html>
您沒有寫任何JS框架,但是我認為(入門)從jQuery或其他可以幫助您抽象一些JS功能的框架開始比較容易。
這里簡要說明發生了什么:
網站正在等待,直到您開始向輸入內容中寫入任何內容為止(就像您的代碼中一樣)
腳本正在處理鍵入事件(keypress),並等待將值插入到您的輸入中
腳本發送帶有輸入值作為參數的ajax請求
PHP代碼從$ _POST超全局數組中獲取值,並將其插入到PHP變量中
PHP代碼正在發送對JS腳本的響應,這些響應一切都很好,並且此響應已打印在控制台中(您可以執行所需的任何操作,需要使用它)
問題:它將向服務器發送大量請求,因此請考慮采用更好的方法( change
事件而不是keypress
?)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.