所以我对外部php文件进行了ajax调用,该文件使用mysql查询来查找具有唯一ID的用户。如果ID是所有数字,此功能可以很好地工作,但如果ID以字母开头,那么甚至没有任何内容发布到php文件。
我已经打印到错误日志,当点击按钮并且ID以字母开头时,根本没有发生任何事情。我打印了完全数字ID和字母数字ID的数据类型,它们都是字符串,其中没有隐藏的特殊字符。
我完全迷茫和迷茫,任何人都可以提供一些有关如何发布这些值的见解吗?这是我的ajax调用代码:
var value = <?php echo $userinfo['ID']; ?>;
$(function() {
$( "#emailbutton" ).click(function() {
$.post('emailaddresses.php',{value:value}, function(data){
$("#email").html(data);
});
return false;
});
});
答案 0 :(得分:0)
你只是遗漏了"<?php echo $userinfo['ID']; ?>"
周围的字符串分隔符...只有数字可以作为没有引号的文字:)
var value = "<?php echo $userinfo['ID']; ?>";
$(function() {
$( "#emailbutton" ).click(function() {
$.post('emailaddresses.php',{value:value}, function(data){
$("#email").html(data);
});
return false;
});
});
例如,如果返回的值是123
,那么您将生成以下JavaScript(有效):
var value = 123;
但是当您返回非数字ID时,它会生成无效的JavaScript,如:
var value = a123; <=== Assigns undefined unless a variable called a123 also exists with a value
当你真的需要时:
var value = "a123";
答案 1 :(得分:0)
因为var value = a12313
因javascript遇到错误而不是字符串的有效JS语法。正确的应该是var value = 'a12313'
。因此,您需要将var value = <?php echo $userinfo['ID']; ?>;
更改为var value = '<?php echo $userinfo['ID']; ?>';
以处理字符串ID