解决:我没有意识到ajax只在该实例中发送数据并重定向创建了一个新实例。
我查看了所有stackoverflow结果以获得帮助,但没有一个可行。
我试图通过POST向php发送一个变量mmm,由于某种原因,php没有检索它。我不知道我做错了什么。
这是javascript代码(在checks.js文件中):
$.ajax({
type: "POST",
url: 'https://www.example.com/panel/app.php',
data: {mmm: 145},
success: function(data) {
alert("success");
}
});
document.getElementById("adminLoginForm").submit();
这是文件中的php代码(app.php):
<?php
$output = (isset($_POST['mmm'])) ? $_POST['mmm'] : 0;
echo "<script>console.log( 'Debug Objects: " . $output . "' );</script>";
?>
Google控制台日志打印:“调试对象:0”
文件目录如下:
主文件夹
碱
注册
登录
碱
JS
面板
答案 0 :(得分:0)
Ajax意味着您没有通过浏览器操作进行表单提交,这会刷新页面。尝试摆脱是行并运行代码
document.getElementById("adminLoginForm").submit();
。然后,您可以获得警报成功。
$.ajax({
type: "POST",
url: 'https://www.example.com/panel/app.php',
data: {mmm: 145},
success: function(data){
alert("success");
console.log( 'Debug Objects: ' + data )
}
});
将PHP脚本更改为echo $ output。
答案 1 :(得分:0)
由于您要将表单发布到同一个php端点,所有您需要的是表单中的隐藏输入并且可以摆脱ajax
在提交事件处理程序中,您可以在浏览器发布表单之前更新脚本中任何来源的隐藏输入值
<input type="hidden" name="mmm" id="input_mmm">
jQuery提交事件监听器:
$('#adminLoginForm').submit(function(){
$('#input_mmm').val( new_value);
});
从此处只需使用提交按钮提交表单即可。这将触发事件。
答案 2 :(得分:0)
您尚未提及哪个页面包含您的Ajax表单提交代码。我们假设您使用的是同一页面,即 app.php 。现在您的页面将如下所示:
<profile>
<id>AddMgmtTest</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>admgmttestng.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>
</plugins>
</build>
</profile>
虽然这不是100%标准的实现方式,但它只会给你一个参考。如果你想提供你想要达到的更具体的东西,我会进一步帮助你。我希望它有所帮助!!