2012-12-27 113 views
-2

Newb问题,所以如果有明显的答案,我会试试我所能想到的一切。将一个JavaScript变量传递给php

我有一个JavaScript变量设置像这样:

var imageURL = <?php echo json_encode($imageRows[0]['URL_Path']); ?>; 

其中$ imageRows [0]可以是从0到任何一个整数。

我也有像这样的另一个变量:

var count = 15 

我需要通过计数到IMAGEURL变量...可以这样做?

我猜是这样的:

var imageURL = <?php echo json_encode($imageRows['count']['URL_Path']); ?>; 

var imageURL = <?php echo json_encode($imageRows[(count)]['URL_Path']); ?>; 

等,但没有任何事情工作。

感谢

编辑: 由迈克·布兰特回答。

谢谢

+1

你是什么意思的“传递计数到imageURL变量”?这些都是javascript变量,除了PHP创建的imageURL变量以外,PHP还有什么作用? –

+1

你必须把头部的变量发送到某处(例如cookie)。 – JCOC611

回答

1

为什么你不只是json_encode()整个$imageRows变量。然后你可以在javascript中免费使用它。像这样:

var image_urls = <?php echo json_encode($imageRows); ?>; 
var count = 15; 
var the_url_you_want = image_urls[count]['URL_PATH']; 
+0

这太棒了......像冠军一样工作:)花了我一段时间来测试它。 非常感谢。 – jaminben

2

我现在明白你的问题了。它看起来像你试图让PHP响应你的Javascript中的变量并回显输出。你可以把计数到查询字符串(http://server/yourpage.php?count=15),然后拿到count变量到PHP像这样:$_GET['count']

编辑:从您的评论,它看起来像你实际上有这样算不算一个PHP变量(自回归MYSQL)。您的困难可能来自PHP对字符串插值的解释。它将$imageRows作为PHP表达式的一部分后看到[],并且您似乎想要将计数作为JavaScript变量传递。如果您已有$count PHP变量,则可以执行$imageRows[$count]。如果你必须把它作为一个javascript变量,你可以做var count = <?php echo $count?>;,然后回显所有{$imageRows}的JSON,用javascript访问count

(此前:为什么你就不能使用$count?)

+0

你可以在Script标签内使用$ count吗? – jaminben

+0

+ 1for编辑答案;) – dbf

+0

@ user1399098如果它是一个PHP变量,尽管现在我知道你现在在问什么。 – Plynx

0

(编辑因为你改变了这个问题,让我更好地理解它)

PHP将无法读取的值浏览器端的JavaScript变量,您必须将其作为POST变量或cookie传递到页面中。

+0

计数不是基于url编号,而是来自mySQL行的计数。 – jaminben

1

不是你正在考虑的方式,但是当页面加载时,你可以总是执行一个AJAX请求,这将允许你将两个变量作为标准请求参数传递给PHP(或任何Web服务器)。

jQuery#ajax为例。

$.ajax({ 
    url: 'example.php', 
    data: { 
    count: count 
    }, 
    success: function(data) { 
    // Do something with the data 
    } 
}); 

但是,以上是一个非常粗略的例子。