我有一个JavaScript来处理文本输入的onkeydown事件。如何将此输入或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>
答案 0 :(得分:0)
轻松!使用HTTP请求,并通过将值放入URL来创建GET
变量,或者通过将值放在请求标头中来创建POST
变量。这可以通过HTML表单,或使用AJAX,或javascript重定向或其他一些方法来完成。
然后,您可以在PHP中使用数组:$_GET
,$_POST
或$_REQUEST
来检索变量。
ex:$_GET['my_var']
答案 1 :(得分:0)
简单,但取决于你想要做什么。以下是一些示例代码段:
<?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特性进行一些抽象。
这里简要说明发生了什么:
网站正在等待您开始在输入中写入任何内容(就像在您的代码中一样)
脚本处理输入事件(按键)并等待值插入输入
脚本正在发送带有输入值的ajax请求作为参数
PHP代码从$ _POST超全局数组获取值,并将其插入到PHP变量中
PHP代码正在向JS脚本发送响应,所有这些都很好,而且这个响应会打印在您的控制台中(您可以随心所欲地做任何事情 - 需要它)
问题:它会向服务器发送大量请求,因此请考虑更好的方法(change
事件而不是keypress
?)