完全免责声明,我对JavaScrip,JQuery,Ajax和PHP的了解有限,自3月中旬以来,我一直在努力解决问题。我正在尝试使用JavaScript将某些数据格式化为数组,然后使用Ajax将其发布到PHP页面(必须打开并显示一些HTML)。
对于以下代码,我几乎尝试了所有我能想到的变体:
(此代码位于HTML文档中表单下方的<script>
标签中,标头中的脚本标签包括Ajax
和JavaScript
src
引用)>
$("#dataForm").submit(function(event){
console.log("Submit started");
var test = $("#title").val();
var serData = 'test1='+test;
//event.preventDefault();
//POST to PHP
$.ajax({
method: "POST",
url: "summary.php",
data: {serData: serData},
success: function(response){
console.log("Success!");
},
error: function(xhr, ajaxOptions, thrownError){
console.log("Didn't work!");
}
});
//event.preventDefault();
});
但是,这甚至不发布数据,而是在URL区域显示所有数据-也不会加载PHP页面。我找不到任何参考资料来解释该怎么做。
我确实找到了这个window.location = "summary.php"
-但是,它只加载PHP页面,并且没有数据被发布。
这是我的HTML:
<form id="dataForm">
<strong>Title:</strong>
<input type="text" name="title">
<input type="submit" name="sub_button" value="Submit">
</form>
和PHP(summary.php
):
if (isset($_POST['serData'])){
echo "Data POSTed: ";
echo $_POST["test1"];
$test1 = $_POST["test1"];
}
//assume there is some simple HTML code here
<html>
<p>{$test1}</p>
</html>
控制台记录“成功!”每次,但我没有成功。
总结一下,出于测试目的,我只想发布此test1
变量并在PHP端检索它,然后显示PHP HTML页面。
从那时起,我想知道将JavaScript数组发布到PHP的最佳方法(此处考虑JSON),以及是否最好将此数组添加到("#dataForm").serialize()
的末尾(例如{{ 1}})或单独发布(如果确实可行)。
如果需要,很乐意提供更多代码! 干杯
Edit1:
我的("#dataForm").serialize() +"&array"
现在看起来像
数据:{serData:true,test1:$('input [name =“ title”]')。val()}
当我点击“提交”按钮时,数据不再显示在URL中!很好!但是PHP页面仍然无法打开!我在这里想念什么吗?