gpt4 book ai didi

作为 jQuery 函数一部分的 PHP 变量不起作用,但纯文本可以

转载 作者:可可西里 更新时间:2023-11-01 00:27:47 27 4
gpt4 key购买 nike

我的 PHP 文件中有以下 jQuery 代码(2010 年 1 月 19 日 @ 10:40 MST 编辑):

<?php
$count = 0;
foreach($attachments as $attachment) :
echo '<script type="text/javascript">
$(\'#a_'.$count.'\').click(function() {
$(\'#d_'.$count.'\').show(200);
});

// if "no" is clicked
$(\'#d_'.$count.' .no\').click(function() {
$(\'#d_'.$count.'\').hide(200);
});

// if "yes" is clicked
$(\'#d_'.$count.' .yes\').click(function() {
$(\'#d_'.$count.'\').hide(200);

// update database table -- this is why I need the script inside the for loop!
var jsonURL = \'http://path/to/update_db_script.php\';
$.getJSON(jsonURL, {\'post_id\' : '.$attachment->ID.'}, function(data) {
alert(\'Thank you. Your approval was received.\');
});
$(\'#a_'.$count.'\').replaceWith(\'<span>Approved</span>\');
});
</script>';

echo '<li>';
if($attachment->post_excerpt == 'approved') {
// Check the proof's status to see if it reads "approved"
echo '<span>Approved</span>';
} else { ?>
// If not yet approved, show options
<a class="approve" id="a_<?php echo $count; ?>" href="#">Click to Approve</a>
<div class="confirm-approval" id="d_<?php echo $count; ?>">
<p>Please confirm that you would like to approve this proof:</p>
<a class="yes" href="#">Yes, I approve</a>
<a class="no" href="#">No, not yet</a>
</div><?php
} ?>
</li>
<?php $count++;
endforeach; ?>

The page in question is available here . “点击批准”链接不起作用(这是我的问题)。

当我查看源代码时,PHP 变量似乎已在 jQuery 中正确回显:

<script type="text/javascript">
$('#a_0').click(function() {
$('#d_0').show(200);
});
... etc ...
</script>

这看起来是正确的,但是当我点击任何链接时没有任何反应。但是,当我用纯数字(0、1 等)替换 PHP 回显语句时,点击功能按预期工作

您可能会问:为什么要在 for 循环中使用它? 原因是我需要检索 attachment->ID 变量并传递它到外部 PHP 脚本。当有人点击“批准”并确认时,外部脚本获取附件->ID 并将数据库值更新为“已批准”。

为什么当 PHP 到位时点击功能不会触发?这里是否有某种更强大的力量在起作用(例如,托管限制),或者我是否遗漏了一个基本的方法PHP 和 JavaScript 交互?

最佳答案

由于您没有发布您的 HTML,因此很难进行故障排除。

首先,我不确定为什么一个有效而另一个无效,因为它输出的代码看起来是正确的。不管怎样,我还是会做出一些改变。将您的a_0a_1 等和d_0d_1 等移动到id 属性而不是类:

<div><a href="#" id="a_0" class="approve">Click Me</a></div>
<div class="confirm_approval" id="d_0">Show Me</div>
<div><a href="#" id="a_1" class="approve">Click Me</a></div>
<div class="confirm_approval" id="d_1">Show Me</div>

现在,不要在 PHP 中循环输出代码,而是将此 jQuery 代码一次放在您的页面上:

$(document).ready(function(){
$("a.approve[id^='a_']").click(function(e){
var id = this.id.replace('a_',''); // Get the id for this link
$('#d_' + id + '.confirm-approval').show(200);
e.preventDefault();
});
});

此代码查找任何具有 approve 类且其 id 开头的 a 元素>a_。单击它时,它会从 id a_0 = 0 中获取数字并使用该 id 找到 confirm-approval 元素并显示它。

关于作为 jQuery 函数一部分的 PHP 变量不起作用,但纯文本可以,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2083818/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com