我想在提交 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");
}
我收到一条提示说成功
,但浏览器从不指向 echo.php =s
编辑 3:
在提示说成功
之后,一个?
被添加到浏览器的URL 中。最初的 URL 是 http://localhost/Test12/index.php
,后来变成了 http://localhost/Test12/index.php?
。
最佳答案
这种方式应该显示响应。
JavaScript
$("#form").submit(function(event) {
event.preventDefault();
var name = $("#name").val();
//alert(name);
$.ajax({
type:'POST',
url:'http://localhost/Test12/echo.php',
data: {
nameEntered : name
},
success : function(data){
console.log(JSON.parse(data));
},
error : function(error){
console.log('erro', error);
}
});
});
PHP
<?php
if (isset($_POST["nameEntered"]) && !empty($_POST["nameEntered"])) {
$name = array("nome" => $_POST["nameEntered"]);
echo json_encode($name);
} else {
echo '$_POST["nameEntered"] is not set.';
}
?>
关于javascript - 尝试将值从 JS 发送到 PHP - JQuery 的 $.ajax() 方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37078777/