[英]Pass PHP variable from while loop to javascript function
在有人说“尝试搜索”之前,我已经-我意识到这可能是一个简单的解决方案,但我无法使其正常工作。 这是我第一次涉足AJAX-我对javascript的了解略高于一年级生...我知道我需要加快速度。
我正在尝试使用AJAX构建嵌套的任务管理器。 我陷入了AJAX实施的麻烦。 基本概念应如下所示:
目标: 创建嵌套任务列表
里程碑:建立基本设置-12年2月11日完成
任务:设计数据库-已完成2/11/12
任务:设计php内容-12/11/2完成里程碑: 增加技巧
当您单击链接时,它将运行我的MySQL更新以显示正在完成的项目。 我有三个嵌套的while循环(一个用于目标,一个用于里程碑,一个用于任务)。 它们几乎相同。 这是最深层的嵌套循环:
$query_tasks = mysql_query("SELECT * FROM task WHERE task_gid = '$task_gid' AND task_mid = '$task_mid' AND task_tid IS NOT NULL");
$t_numrows = mysql_num_rows($query_tasks);
if($t_numrows > 0){
while( $get_task = mysql_fetch_array($query_tasks)){
$task_id = $get_task['task_id'];
$task_goal = $get_task['task_goal'];
$task_due = $task_task['task_due'];
$task_due = date("m/d/Y", $task_due);
$task_complete = $get_task['task_complete'];
$task_complete_date = $get_task['task_complete_date']; ?>
这是触发查询的链接:
<a id="link" href="#"><?=$task_goal?> by <?=$task_due?> </a>
}
这是我的ajax查询:
<script type="text/javascript">
$('#link').click(function(){
$.ajax({
type: "GET",
url: "complete.php?id=<?=$task_id?>"
});
return false;
});
</script>
我已经将它用于一个链接(如果我单击最后一个呈现的链接,它会按需工作-但没有其他链接可以工作)。 我尝试过在头部调用javascript(我的首选方法),以及在每次循环通过时都调用javascript(不确定这是一个好主意,但无论如何)。 我的想法是为JavaScript函数中的每个任务使用while循环中的变量。 我尝试将ajax脚本放到javascript函数中,并在链接的onClick行为上调用它,但是没有运气。 思考?
这是您应该如何做: http : //pastebin.com/ZMCzAS5H
通过为链接设置自定义属性(task_id),您稍后可以在ajax请求中检索它。 这样,您将为所有链接使用一个事件绑定程序,而不是为每个链接使用一个事件绑定程序。
对同一文档中的多个元素使用相同的ID并不是一个好主意。 ID应该是唯一的。 使用类代替,所以尝试
<a class="link" href="#"><?=$task_goal?> by <?=$task_due?> </a>
和
<script type="text/javascript">
$('.link').click(function(){
$.ajax({
type: "GET",
url: "complete.php?id=<?=$task_id?>"
});
return false;
});
</script>
JavaScript和PHP不相互作用。 PHP是一个“预处理程序”,并且基本上生成HTML(在这种情况下)。 您不能在JavaScript中使用PHP变量。 期。
生成HTML时,将task_id添加到锚点
echo "<a class=\"link\" href=\"#\" rel=\"". $task_id ."\">". $task_goal ." by ". $task_due . " </a>";
( 不要将ID用于link
,而应使用类 )
然后在jQuery中:
$('.link').click(function(e){
e.preventDefault(); // use this instead of return false;
task_id = $(this).attr('rel');
$.ajax({
type: "GET",
url: "complete.php?id="+ task_id
});
});
“ 我已经将它用于一个链接(如果我单击最后一个呈现的链接,它会按预期工作,但没有其他链接可以工作) ”
这可能是因为您为锚点使用了ID,并且在页面上只能使用一次ID。 你必须class
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.