理解 $.ajax() 参数以获取 PHP 变量时遇到麻烦
Trouble Understanding $.ajax() Parametres to get PHP Variable
昨天我问了关于将HTML,Javascript和PHP与会话连接的问题。
有人建议我使用 $.ajax(),但我无法弄清楚如何让它工作。
首先,我有一个 HTML 文件:
<?php session_start(); ?> <!-- This is on the first line of the page -->
...
<form id="formexample" method="post" action="cart.php">
<select name="formexample1">
<option value="1">Option 1</option>
<option value="2">Option 2</option>
</select>
<select name="formexample2">
<option value="1">Option 1</option>
<option value="2">Option 2</option>
</select>
<button type="button" onclick="addToCart()">Add to Cart</button>
</form>
<div class="test"></div>
我有一个单独的,包含PHP文件:购物车.php
<?php
session_start();
$PHPtest = 1;
echo json_encode($PHPtest);
/*
$_SESSION['cart'][$_POST['formexample1']] = $_POST['formexample1'];
$_SESSION['cart'][$_POST['formexample1']][$_POST['formexample2']] = [$_POST['formexample2']]
*/
?>
我的目标是在我的 Javascript 中访问 $_SESSION 变量,但目前我正在尝试让它先与$PHPtest一起使用。
在Javascript中,我有这个:
function addToCart()
{
var test;
$.ajax(
{
url:"cart.php",
type:"post",
data: data,
success:function(PHPtest)
{
test = $.parseJSON(PHPtest);
console.log(test); //sends the response to your console
},
error:function()
{
console.log("Error");
}
});
alert(test);
}
要了解我是如何走到这一步的,请参阅昨天的帖子(链接在页面顶部)和 Josh S 答案下的讨论。我试图让 $.ajax() 工作,但没有成功。我一直在查看在线示例,并一直在尝试编写相同的格式,但我尝试的似乎都不起作用。
提前谢谢。
编辑:
这就是我现在拥有的:
var test;
$.ajax(
{
url:"cart.php",
type:'post',
data: 'test',
datatype: 'json'
success:function(PHPtest)
{
test = $.parseJSON(PHPtest);
alert(test);
console.log(test); //sends the response to your console
},
error:function()
{
console.log("Error");
}
});
编辑 2
我终于想出了如何将$PHPtest发送到Javascript。我写道:
$.get( "cart.php", function( PHPtest ) {
test = PHPtest;
alert(test);
});
我的PHP仍然存在:
<?php
/* session_start();*/
$PHPtest= "test";
echo json_encode($PHPtest);
?>
它适用于PHPtest的各种值。据我所知,在"echo"和"$PHPtest"之间去掉"json_encode"没有区别。
编辑 3
这就是我现在所拥有的。
.HTML:这是在文件"预订.php"中。 ... 选项 1 选项 2 选项 1 选项 2 加入购物车
Javascript:
function addToCart()
{
var test;
get( "cart.php", function(PHPtest)
{
test = PHPtest;
alert(test);
});
}
.PHP:外部PHP文件,"cart.php":
<?php
/* session_start();*/
$PHPtest= "Example";
echo json_encode($PHPtest);
if(isset($_POST))
{
$_SESSION['cart']['0'] = $_POST['formexample1'];
}
?>
警报显示:
"example"
注意:未定义的索引:formexample1 在第 8 行<<b>br/>
相同的文本出现在页面的左上角,即使我注释掉了"$.get()"。
编辑 4
我正在尝试使用 AJAX 提取单个 PHP 变量 $PHPtest。我也在尝试正确检索开机自检信息。
.HTML:
<?php session_start(); ?> <!-- This is on the first line of the page -->
...
<form id="bookingform" method="post" action="cart.php">
<select name="day">
<option value="1">Option 1</option>
<option value="2">Option 2</option>
</select>
<select name="time">
<option value="1">Option 1</option>
<option value="2">Option 2</option>
</select>
<button type="button" onclick="addToCart()">Add to Cart</button>
</form>
Javascript:
function addToCart()
{
$("#bookingform").submit();
var test;
$.get( "cart.php", function(PHPtest) {
test = PHPtest;
alert(test);
});
}
购物车.php:
session_start();
$PHPtest = "Test";
$PHPtest = "Test2";
echo json_encode($PHPtest);
echo json_encode($PHPtest2);
if(isset($_POST['day']))
{
/*$PHPtest3 = "test3"
$_SESSION['cart']['0'] = $_POST['day'];
echo json_encode($PHPtest3);
echo json_encode($_POST['day']);*/
}
照原样,警报生成
> "Test""Test2"
取消注释购物车中的"isset".php会将警报更改为:
<br />
<b>Parse error</b>: syntax error, unexpected '$_SESSION' (T_VARIABLE) in <b>(directory)</b> on line <b>14</b><br />
第 14 行是带有"$_SESSION['购物车']['0'] = $_POST['天'];"的行。
有这么多的编辑,很难说你对此持什么立场。因此,让我们逆向工作并弄清楚这一点。
编辑 3
您收到此错误是因为您实际上没有发布任何内容。$_POST
总是要设置的。因此,您的检查会给您误报。相反,你会想要做这样的事情:
<?php
session_start();
if (isset($_POST['formexample1'])) {
$_SESSION['cart']['0'] = $_POST['formexample1'];
}
编辑 2:
你一开始就做对了。您实际上希望将数据发布到后端。至少从购物车中看.php是这样。如果你想跳过整个$.ajax()
调用,那么你可以查看jQuery帖子。
编辑 1:
...
url:"cart.php",
type:"post",
data: data,
...
我看不出您的数据对象在哪里发挥作用。Javascript将允许你抛出未定义的变量。jQuery将默默地为您处理它们。相反,这可能对您有所帮助。
...
url:"cart.php",
type:"post",
data: {
"formexample1" : $('select[name="formexample1"]').val(),
"formexample2" : $('select[name="formexample2"]').val()
}
...
这应该可以帮助您找回所需的结果。如果没有,请告诉我。
- 将PHP变量传递给jQuery时遇到问题
- 通过javascript重定向html传递php变量
- 如何在php变量中嵌入JQuery代码
- 在javascript函数中使用php变量
- 将地理编码结果转换为php变量以发布到mysql数据库
- JavaScript,PHP-用JavaScript将多个数据库记录发送到变量或表
- 如何将变量php传递给javascript
- 显示动态变量(php和javascript)的总数
- 传递变量PHP、Javascript location.reload和HTML输入
- 需要将变量 php 的值传递给 javascript,但我不能
- 将变量从 .html 传递到太大而无法容纳在 URL 中的变量.php
- 如何在函数中传递javascript中的变量php
- 在Jquery中插入变量PHP
- 选择正确的变量 php/javascript
- 将HTML存储在变量PHP中,然后回显它
- 将变量PHP Smarty传递给Javascript
- 传递HTML表单post数据到不同的文件/网页javascript变量(php)
- 问题与传递变量(php, sql, jquery拖拽)
- 设置PHP中的javascaript变量(PHP在javascript中)
- 将变量php问题化为代码jquery