我正在尝试从重力形式字段中获取数据以更新另一个字段中的数据。从我的研究看来,我需要使用jquery来做到这一点。处理此问题的最有效方法是什么?如果我将以下代码放入php代码中,该如何访问变量?
add_filter("gform_field_value_MgrPhone", "set_mgr_phone");
function set_mgr_phone($value){
global $wpdb;
$mgr_name = "Tracy Kaufenberg";
?>
<script>
var mgr_name = document.getElementById('input_20_81').value;
console.log(document.getElementById('input_20_81').value);
</script>
<?php
$sql = "SELECT PhoneNumber
FROM ADusers
WHERE phoneNumber IS NOT NULL AND displayName = '" . mgr_name2 . "'" ;
//echo $sql;
$sql = $wpdb->prepare($sql,20);
$results = $wpdb->get_results($sql);
$myArray = array();
//echo count($myArray);
foreach ($results as $result) {
$myArray[] = $result->PhoneNumber;
}
foreach ($myArray as $v) {
$phone = $v;
}
echo $phone;
return $phone;
}
答案 0 :(得分:1)
原生JavaScript选项:
<script>
var mgr_name = document.getElementById('input_20_81').value;
</script>
您也可以在JavaScript控制台中对此进行测试:
console.log(document.getElementById('input_20_81').value);
我强烈建议您学习基本的JavaScript教程:https://www.w3schools.com/js/default.asp
然后,您可以根据需要查看jQuery。
更新
将PHP变量移动到JavaScript
<?php
$mgr_name = "Tracy Kaufenberg";
echo "<script>var mgr_name = '$mgr_name';</script>";
?>
由于PHP是预处理器,因此它仅在服务器端执行。因此,要将变量传递回PHP,我们必须使用GET或POST通过HTTP发送该变量。
<html>
<body>
<form action="saveMgrName.php" method="POST">
Manager Name <input type="text" id="input_20_81" name="input_20_81" value="Tracy Kaufenberg" />
<button type="submit">Send</button>
</form>
</body>
</html>
因此,用户点击Send
,浏览器将数据发送到Web服务器,PHP可以使用$_POST['input_20_81']
访问该数据,并且值将为"Tracy Kaufenberg"
。
如果要使用浏览器中输入的数据从PHP收集数据,则可以使用AJAX将数据发送到PHP并获得响应,而无需加载新页面。在某种意义上,它使用JavaScript来构建HTTP请求并将其发送到后台服务器。
鉴于上述HTML代码,您可以像这样使用jQuery来完成此操作。
$(function(){
$("form").submit(function(e){
e.preventDefault();
$.post($(this).attr("action"), { mgr_name: $("#input_20_81").val() }, function(response){
console.log(response);
if(response){
alert("Manager Name is saved.");
}
});
});
});
如果您需要从PHP获取数据,则可以考虑使用$.get()
和$.post()
。
希望有帮助。