[英]Why my wordpress ajax isn't calling in frontend javascript file?
[英]jQuery ajax isn't calling my php file?
好的,所以我总是n00b,但我只是想让jQuery调用我的php脚本并获取返回数据。 当我运行它时,它似乎没有尝试访问我的PHP文件,而只是将“?wd =”添加到我的URL在url栏中,在任何地方都没有“lookup.php”。 当我直接调用它时,php脚本工作正常。 我已经尝试了很多东西,我只是尝试了一个小巧的工作最小的例子,然后我编辑它来使用我的网址,看看它是否会起作用,它打破了小提琴。 那么为什么jQuery似乎讨厌我的php文件呢?
<!DOCTYPE html>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
$("#input").on("submit", function()
{
var wd = $("#word").val();
$.ajax({
url: "lookup.php",
data: {word:wd},
success:function(result){
$("#return").html(result);
}
});
return false;
});
});
</script>
</head>
<body>
<form id="input" action="">
Word:<input type="text" name="word" autofocus /><br />
<input type="submit" value="Submit" />
</form>
<br />
<div id="return"><b>Return data here</b></div>
</body>
</html>
和我的PHP:
<?php
$word = $_GET['wd'];
if ($word=="hi") {
echo "<p>Hey there!</p>";
} else {
echo "<p>Mi dispiace :-(</p>";
}
?>
我确信这是非常明显的,所以你提前花了几秒钟来帮助我。
你使用过var wd = $(“#word”)。val(); 在js
但是对于html中的文本框,你没有给出id
请为您的文本框添加ID并尝试
<input type="text" id="word" name="word" autofocus />
要么
编辑你的js如下
var wd=$("input[name=word]").val();
因为您在PHP中使用GET
请求。 你需要为你的ajax调用提供type: "GET"
:
$.ajax({
type: 'GET', // <-- Here
url: "lookup.php",
data: {word:wd},
success:function(result){
$("#return").html(result);
}
});
您还缺少输入的id
:
<input type="text" id="word" name="word" autofocus />
因为你使用$("#word").val()
来获取你输入的值。
你必须包括ajax的类型
<script type="text/javascript">
$(function(){
$("#input").on("submit", function()
{
var wd = $("#word").val();
$.ajax({
url: "lookup.php",
type : "GET", // GET or POST
data: {word:wd},
success:function(result){
$("#return").html(result);
}
});
return false;
});
});
</script>
您正在名为“name”的文本框上调用方法“val()”,该文本框未定义。 您应该使用“id = name”而不是“name = name”来使用js上的对象
这不起作用,因为您的文本框没有任何属性ID,您尝试使用#word使用此行来访问它的值
var wd = $("#word").val();
要获得所需的结果,请在html代码中的输入文本字段中添加id =“word”属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.