我在这段代码中收到一个错误,显示 Uncaught ReferenceError: myFunction is not Defined at HTMLButtonElement.onclick.I 无法弄清楚我哪里出错了。 这是我的代码,其中包含一个 while 循环,该循环从数据库中获取数据,$xyz 转到名为 myFunction() 的 JavaScript 函数。
这是我的文件:
if($rs->num_rows>0)
{
while($row=$rs->fetch_object())
{
$xyz=$row->judged_id;
$my="SELECT DISTINCT first_name,picture from user1 where id='$xyz'";
$hj=$con->query($my);
if($hj->num_rows>0)
{
while($rz=$hj->fetch_object())
{
echo $name=$rz->first_name;
$pic=$rz->picture;
echo"<img src='$pic' height=100 width=100>";
?>
<button type='button' class='egf' onClick="myFunction('xyz')">Chat</button>
<br><br>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script>
var xyz=<?php echo $xyz; ?>;
function myFunction('xyz')
{
$.ajax({
type: 'GET',
url: 'chat/public/01_index.php?id2=xyz',
success: function(data) {
$('.chat-list').html(data);
}
});
});
}
</script>
<?php
}
}
最佳答案
PHP 变量 $xyz
的内容是什么?例如,如果它是一个字符串,
这个:
var xyz=<?php echo $xyz; ?>;
会产生如下 JavaScript:
var xyz=ABCDEFG;
这是无效的。相反,它应该是:
var xyz = '<?php echo $xyz; ?>';
此外,您的函数定义似乎不正确,应该是这样的,因为您不能指定字符串作为参数名称:
function myFunction(varNameHere)
{
alert(varNameHere);
}
<a href="javascript:myFunction('Test')">Click me</a>
此外,您还在函数中使用 jQuery ready()
函数,该函数可能不会随时触发。
我认为您正在寻找的是这样的:
function myFunction(xyz)
{
$.ajax({
type: 'GET',
url: 'https://httpbin.org/get?q=' + xyz,
success: function(data) {
$('.chat-list').html(data.args.q);
}
});
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="javascript:myFunction('stackoverflow')">Click me</a>
<div class="chat-list">
</div>
关于javascript - 单击按钮时在 Javascript 函数中调用 Ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43536619/