我试图通过ajax发布变量并通过php获取。我正在
未定义的索引:source1
未定义的索引:source2
在我的PHP中回显变量,任何人都知道我的代码是什么?
HTML
<head>
<script src="./script.js"></script>
<script src="//code.jquery.com/jquery-1.12.0.min.js"></script>
</head>
<body>
<form action="get.php?&uniId=3" method='post' name='sendform' onSubmit='send_value()'>
<input type='submit' value='Test1'>
</form>
</body>
的Ajax
function send_value() {
$.ajax({
type: 'post',
url: 'get.php',
data: {
source1: "some text",
source2: "some text 2"
},
success: function (data) {
console.log(data);
}
})
}
PHP
<?php
if (!empty($_GET{"uniId"})) {
if ($_GET{"uniId"} == 3) {
echo 'your logged in as '; echo $_GET['uniId'];
$src1 = $_POST['source1'];
$src2 = $_POST['source2'];
echo $src1;
echo $src2;
var_dump($_REQUEST);
} else {
echo 'no! no! no!';
}
} else {
echo "Im sorry your on the wrong page ";
}
答案 0 :(得分:1)
您可以将数据作为变量的串联传递给JavaScript函数。
在AJAX脚本的数据中传递多个变量。
这是传递数据的方法之一。
function send_value() {
var value1 = "Post One";
var value2 = "Post Two";
$.ajax({
type: 'post',
url: 'get.php',
data: "&data1"+value1+"&data2"+value2,
success: function (data) {
console.log(data);
}
});
}
在PHP中,如果你使用unID获得var_dump()
perfecth,你需要检查这样的数据。
PHP代码:
错误:您需要使用此大括号
$_REQUEST[]
的helpf访问$_GET[]
或[]
,但您使用的是{}
完全是一个大错。
因此您需要替换以下代码:
替换:
if ($_GET{"uniId"} == 3) {}
。通过强>
if ($_POST["uniId"] == 3) {}
您的整个代码如下所示。
<?php
if (!empty($_POST["uniId"])) {
if ($_POST["uniId"] == 3) {
// Data Process Here
}
}
?>
get.php
文件整体上都是这样的:
<?php
if (!empty($_POST["uniId"])) { // Your brace look wrong in this line
if ($_POST["uniId"] == 3) { // Your brace look wrong in this line
echo 'your logged in as '; echo $_GET['uniId'];
$src1 = $_POST['data1']; // This should be the variable what we have used for seding purpose.
$src2 = $_POST['data2'];
echo $src1;
echo $src2;
var_dump($_REQUEST);
} else {
echo 'no! no! no!';
}
} else {
echo "Im sorry your on the wrong page ";
}
答案 1 :(得分:0)
你在这做两件事。
您的表单会被提交并在提交后调用send_value()
回调。但由于此功能不会返回false
,因此表单的原始提交将发生,并且仅提交参数uniId=3
。那就是你没有设置$_POST['data1']
和$_POST['data2']
。
要使表单由AJAX提交,您必须将HTML表单标记更改为
onSubmit='return send_value()'
和return false
。
现在您只进行AJAX调用,并且不会设置参数uniId
。你必须将它包含在AJAX调用中。
function send_value() {
$.ajax({
type: 'post',
url: 'get.php',
data: {
source1: "some text",
source2: "some text 2",
uniId: 3
},
success: function (data) {
console.log(data);
}
});
return false;
}
现在在PHP中将$_GET{"uniId"}
更改为$ _POST [“uniId”],它应该可以正常工作。