我正在尝试发送变量" userID"从php到javascript。但是,当我打印"数据"它显示了整个javascript文档。
以下是代码
的index.php:
$userID =10;
if(isset($_POST['userID'])){
switch (($_POST['userID'])){
case 'getUSerID':
echo $userID;
break;
}
}
Javascript代码:
$(document).ready(function(){
var userID = getUserID("getUserID");
function getUserID(){
$.ajax({
url : 'index.php',
type: 'POST',
data : userID,
success: function(data, textStatus, jqXHR)
{
return data;
},
error: function (jqXHR, textStatus, errorThrown)
{
event.preventDefault();
alert( 'Failed to toogle.');
}
});
}
}
任何人都可以告诉我代码中的错误。
提前致谢
答案 0 :(得分:0)
在你的php中,你显示的是一个没有值的变量,你应该为这个$userID
分配一个值
$userID = $_POST['userID'];
第二个问题是在你的javascript中你做了这个
var userID = getUserID("getUserID");
每次undefined
值返回userID
时都会返回,因为getUserID没有返回任何内容。它有一个函数$.ajax
并且不会返回任何东西,因为它是异步的
第三个问题是在$.ajax
内你发送userID
的值,每次都是undefined
请详细说明您要发送的数据,以及您希望如何处理结果,以便我们为您提供帮助。
答案 1 :(得分:0)
在你的js上试试这个(假设你将userID的值传递给$userID
):
<script>
var userID = <?php
if(isset($_POST['userID'])){
switch (($_POST['userID'])){
case 'getUSerID': echo json_encode($userID);
break;
}
}
?>;
</script>
使用json_encode()要求:
$userID
编码为UTF-8(当然是US-ASCII)由于UTF-8支持完整的Unicode,因此动态转换应该是安全的。
答案 2 :(得分:0)
好吧,如果你需要从你的php文件中获取数据,不需要发布一个变量来改变它,因为我从你的代码中理解了...你需要做的就是使用像这样的jQuery异步获取它
var userID;
function getUserID()
{
$.get( "test.php", function( data ) {
userID = data;
});
}
这个是异步的,这意味着,你调用函数,一旦得到结果,它就将它分配给userID,然后你可以使用userID变量
第二个解决方案是使用像这样的同步ajax函数
function getUserID()
{
if (window.XMLHttpRequest)
AJAX=new XMLHttpRequest();
else
AJAX=new ActiveXObject("Microsoft.XMLHTTP");
if (AJAX)
{
AJAX.open("GET", "test.php", false);
AJAX.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
AJAX.send();
return AJAX.responseText;
}
else
return null;
}
var userID = getUserID();
这个可以允许你调用得到你的结果,因为它有一个return语句...如果你试图发送一个巨大的日期,它可能会减慢你的应用程序。
并且不要忘记加载.php文件echo $userID
,无需测试isset($_POST...
,因为您只需要从我不了解的PHP中获取数据从你的问题
最后一件事,如果你需要将一个数组或一个对象从php传递到javascript,你必须json编码和json解码...告诉我,我会帮助你。