PHP数组()到javascript数组()的转换
我正在尝试将PHP数组转换为javascript数组,以便jQuery的datetimepicker禁用某些日期。但我似乎在网上找不到正确的答案。我正在为我的项目使用Zend框架PHP数组()到javascript数组()的转换,javascript,php,arrays,Javascript,Php,Arrays,我正在尝试将PHP数组转换为javascript数组,以便jQuery的datetimepicker禁用某些日期。但我似乎在网上找不到正确的答案。我正在为我的项目使用Zend框架 <?php $ConvertDateBack = Zend_Controller_Action_HelperBroker::getStaticHelper('ConvertDate'); $disabledDaysRange = array();
<?php
$ConvertDateBack = Zend_Controller_Action_HelperBroker::getStaticHelper('ConvertDate');
$disabledDaysRange = array();
foreach($this->reservedDates as $dates) {
$date = $ConvertDateBack->ConvertDateBack($dates->reservation_date);
$disabledDaysRange[] = $date;
}
?>
<script>
var disabledDaysRange = $disabledDaysRange ???? Please Help;
$(function() {
function disableRangeOfDays(d) {
for(var i = 0; i < disabledDaysRange.length; i++) {
if($.isArray(disabledDaysRange[i])) {
for(var j = 0; j < disabledDaysRange[i].length; j++) {
var r = disabledDaysRange[i][j].split(" to ");
r[0] = r[0].split("-");
r[1] = r[1].split("-");
if(new Date(r[0][2], (r[0][0]-1), r[0][1]) <= d && d <= new Date(r[1][2], (r[1][0]-1), r[1][1])) {
return [false];
}
}
}else{
if(((d.getMonth()+1) + '-' + d.getDate() + '-' + d.getFullYear()) == disabledDaysRange[i]) {
return [false];
}
}
}
return [true];
}
$('#date').datepicker({
dateFormat: 'dd/mm/yy',
beforeShowDay: disableRangeOfDays
});
});
</script>
var disabledDaysRange=$disabledDaysRange????请帮忙;
$(函数(){
功能禁用日期范围(d){
对于(变量i=0;i 如果(新日期(r[0][2],(r[0][0]-1),r[0][1])您是否尝试过使用json_编码
它将数组转换为json字符串
<?php
$ConvertDateBack = Zend_Controller_Action_HelperBroker::getStaticHelper('ConvertDate');
$disabledDaysRange = array();
foreach($this->reservedDates as $dates) {
$date = $ConvertDateBack->ConvertDateBack($dates->reservation_date);
$disabledDaysRange[] = $date;
}
$disDays = size($disabledDaysRange);
?>
<script>
var disabledDaysRange = {};
var disDays = '<?=$disDays;?>';
for(i=0;i<disDays;i++) {
array.push(disabledDaysRange,'<?=$disabledDaysRange[' + i + '];?>');
}
............................
var disabledDaysRange={};
var disDays='';
对于(i=0;i而言,这可能是一个简单的解决方案
var mydate = '<?php implode("##",$youdateArray); ?>';
var ret = mydate.split("##");
var mydate='';
var ret=mydate.split(“##”);
var disabledDaysRange=;
要将PHP数组转换为JS,可以这样做:
var js_array = [<?php echo '"'.implode('","', $disabledDaysRange ).'"' ?>];
var js_数组=[];
或者使用JSON_编码:
var js_array =<?php echo json_encode($disabledDaysRange );?>;
var js_数组=;
没有JSON编码的示例:
<script type='text/javascript'>
<?php
$php_array = array('abc','def','ghi');
?>
var js_array = [<?php echo '"'.implode('","', $php_array).'"' ?>];
alert(js_array[0]);
</script>
<script type='text/javascript'>
<?php
$php_array = array('abc','def','ghi');
?>
var js_array =<?php echo json_encode($disabledDaysRange );?>;
alert(js_array[0]);
</script>
var js_数组=[];
警报(js_数组[0]);
带有JSON编码的示例:
<script type='text/javascript'>
<?php
$php_array = array('abc','def','ghi');
?>
var js_array = [<?php echo '"'.implode('","', $php_array).'"' ?>];
alert(js_array[0]);
</script>
<script type='text/javascript'>
<?php
$php_array = array('abc','def','ghi');
?>
var js_array =<?php echo json_encode($disabledDaysRange );?>;
alert(js_array[0]);
</script>
var js_数组=;
警报(js_数组[0]);
PHP json_encode函数将传递给它的数据转换为json字符串,然后输出到JavaScript变量。PHP json_encode函数返回一个字符串,其中包含传递给它的值的json等价物
<?php
$ar = array('apple', 'orange', 'banana', 'strawberry');
echo json_encode($ar); // ["apple","orange","banana","strawberry"]
?>
您可以将JSON_encode输出的JSON字符串传递给JavaScript变量,如下所示:
<script type="text/javascript">
// pass PHP variable declared above to JavaScript variable
var ar = <?php echo json_encode($ar) ?>;
</script>
//将上面声明的PHP变量传递给JavaScript变量
var-ar=;
数字索引的PHP数组将转换为JSON字符串中的数组文字。如果希望将数组作为对象输出,则可以使用JSON_FORCE_OBJECT选项:
<?php
echo json_encode($ar, JSON_FORCE_OBJECT);
// {"0":"apple","1":"orange","2":"banana","3":"strawberry"}
?>
关联数组示例:
<?php
$book = array(
"title" => "JavaScript: The Definitive Guide",
"author" => "David Flanagan",
"edition" => 6
);
?>
<script type="text/javascript">
var book = <?php echo json_encode($book, JSON_PRETTY_PRINT) ?>;
/* var book = {
"title": "JavaScript: The Definitive Guide",
"author": "David Flanagan",
"edition": 6
}; */
alert(book.title);
</script>
var book=;
/*var帐簿={
“标题”:“JavaScript:最终指南”,
“作者”:“大卫·弗拉纳根”,
“版本”:6
}; */
警觉(书名);
请注意,PHP的关联数组在JavaScript中变成了对象文本。我们使用JSON_PRETTY_PRINT选项作为JSON_encode的第二个参数,以可读格式显示输出
您可以使用点语法访问对象属性,如上面包含的警告所示,或者使用方括号语法:book['title']
您可以找到更多信息和详细信息。当我们将PHP数组转换为JS数组时,将得到字符串中的所有值。
例如:
var ars= '<?php echo json_encode($abc); ?>';
您应该在json\u encode
之后使用json\u parse
来获得准确的数组结果。您应该使用PHP语法json\u encode将PHP数组转换为javascript数组。
json_encode将PHP数组转换为json字符串
从一维PHP数组到javascript数组
var项目=;
console.log(项[2]);//输出:Bear
//或
警报(项[0]);//输出:苹果
多维PHP数组到javascript数组
var项目=;
console.log(items[1][name]);//输出:Bear
//或
警报(项目[0][price]);//输出:苹果
有关更多详细信息,您还可以检查您可以使用array.push函数推送jquery数组中的值您是否尝试过“var_dump($disabledDaysRange)”?只是为了查看PHP中的内容是否与jQueryJSON_ENCODE中所需的内容相对应。请检查这没有jquery数组。jquery对象是集合(类似于数组)您的意思是“javascript数组”吗?@Oliboy50当我将其转储时,返回:array(2){[0]=>string(10)“13/09/2013”[1]=>string(10)“24/09/2013”}虽然这从理论上可以回答问题,但包括答案的基本部分(例如代码示例)这里,并提供链接供参考。如果示例正确,我可能会向上投票。您如何知道$disableDates
是字符串(此外,不包含撇号的strigs)最好使用<代码> JSONYNECODEN/COD>。因为我认为日期可以在字符串格式中使用。关于撇号,不要在客户端解码JSON。JavaScript引擎已经为你做了。选择?两者都很好,我再加上第二个solution@FaceOfJock这两个示例都可以使用,但是datetimepicker现在没有打开。@user1528407您能告诉我您在控制台中说了什么吗browser@Charafjra感谢完美的作品。+1适合您智能而简单的解决方案:)
var ars= '<?php echo json_encode($abc); ?>';
var packing_slip_orders = JSON.parse('<?php echo json_encode($packing_slip_orders); ?>');
<?php
var $itemsarray= array("Apple", "Bear", "Cat", "Dog");
?>
<script>
var items= <?php echo json_encode($itemsarray); ?>;
console.log(items[2]); // Output: Bear
// OR
alert(items[0]); // Output: Apple
</script>
<?php
var $itemsarray= array(
array('name'='Apple', 'price'=>'12345'),
array('name'='Bear', 'price'=>'13344'),
array('name'='Potato', 'price'=>'00440')
);
?>
<script>
var items= <?php echo json_encode($itemsarray); ?>;
console.log(items[1][name]); // Output: Bear
// OR
alert(items[0][price]); // Output: Apple
</script>