我有一个包含onkeyup
事件的表单。
我尝试将变量发送到我的php脚本并在div中显示结果。
感谢这个论坛,我将我的测试功能完成了一半:
jQuery.post(the_ajax_script.ajaxurl,
如果我继续:
1)jQuery("#theForm").serialize(),
我得到的响应文本是“Hello World”
如果我尝试传递变量:
2){ name: "p" },
我得到:-1
的JavaScript
function submit_me(){
jQuery.post(
the_ajax_script.ajaxurl,
{ name: "p" },
function(response_from_the_action_function){
jQuery("#txtHint").html(response_from_the_action_function);
}
);
}
PHP
<?php
function the_action_function(){
$name = $_POST['name'];
echo "Hello World, " . $name;
die();
}
?>
FORM
<form id="theForm">
<input type="text" name="user">
<input name="action" type="hidden" value="the_ajax_hook">
<input id="submit_button" value = "Click This" type="button" onkeyup="submit_me()">
<form>
我其实想要onkeyup="submit_me(this.value, 0)"
我通过他们的admin-ajax.php文件在WordPress上这样做。
这个问题在哪里?
修改
显然我必须为数据添加动作
{ action:'the_ajax_hook', name:"p" }
我猜它的WP要求,而不是jQuery,因为我看到了这样的例子:
$.post("test.php", { name: "John", time: "2pm" }
随处可见。
答案 0 :(得分:0)
这样的事情应该有效:
<html>
<head>
<script>
$(document).ready(function() {
$("#my_form").submit(function(event) {
event.preventDefault() // to prevent natural form submit action
$.post(
"processing.php",
{ name: "p" },
function(data) {
var response = jQuery.parseJSON(data);
$("#txtHint").html(response.hello_world);
}
);
});
});
</script>
</head>
<body>
<form id="my_form" action="/" method="post">
<input type="text" name="user" />
<input name="action" type="hidden" value="the_ajax_hook" />
<input type="button" name="submit" value = "Click This" />
</form>
<div id="txtHint"></div>
</body>
</html>
然后在processing.php:
<?php
$name = $_POST['name'];
$response['hello_world'] = "Hello World, " . $name;
echo json_encode($response);
?>