【发布时间】:2016-09-01 21:42:51
【问题描述】:
我想在提交 PHP 表单时执行一个 JS 函数,并从该函数返回一个值(基于用户的输入)给 PHP,我想在其中回显它。
这是一个 SSCCE。在真实的代码中,不仅仅是回显值,而且值是一个 JSON 对象。
以下是我的代码。 问题是$.ajax(); 部分不起作用。在alert(name); 之后,浏览器中没有任何反应。
为什么这不能正常工作?我该如何解决这个问题?
来自 index.php:
<form id="form">
Name:
<input id="name" type="text" />
<input type="Submit" value="Go" />
</form>
来自 scripts.js:
$(document).ready(function() {
$("#form").submit(function(event) {
event.preventDefault();
var name = $("#name").val();
alert(name);
$.ajax({
type:'POST',
url:'echo.php',
data: {
nameEntered : name
}
});
});
});
echo.php:
<?php
if ( isset($_POST["nameEntered"]) && !empty($_POST["nameEntered"]) ) {
echo $_POST["nameEntered"];
} else {
echo '$_POST["nameEntered"] is not set.';
}
?>
编辑:
控制台:
网络:
编辑 2:
将以下内容添加到$.ajax():
,
success: function(){
alert("success");
},
error : function(){
alert("error");
}
我收到一条警告说success,但浏览器从不指向 echo.php =s
编辑 3:
在提示success 之后,? 会添加到浏览器中的 URL。最初的 URL 是http://localhost/Test12/index.php,后来改为http://localhost/Test12/index.php?。
【问题讨论】:
-
你在控制台看到什么错误?
-
在控制台中你看到了吗?由于您没有定义
success回调,因此 什么都不会发生。 -
他仍然可以看到响应页面的php输出。 JS中什么都没有。您是否在脚本之前在页面上包含了 jQuery 库?
-
submit(function() { 这里事件丢失 submit(function(event) {
-
可能是权限问题?你能在没有 ajax 调用的情况下运行你的 PHP 脚本吗?喜欢直接在浏览器中访问它,比如
localhost/echo.php?
标签: javascript php jquery ajax post