Diễn Đàn

Chuyển mảng đa chiều JS sang PHP

Me1000

Áp phích gốc
Ngày 15 tháng 7 năm 2006
  • Ngày 3 tháng 2 năm 2009
Được đăng không dây (Mozilla / 5.0 (iPhone; U; CPU iPhone OS 2_2 như Mac OS X; en-us) AppleWebKit / 525.18.1 (KHTML, như Gecko) Phiên bản / 3.1.1 Di động / 5G77 Safari / 525.20)

Tôi có nhiều mảng mờ trong Javascript
Mã: array[0][0] Tôi cần chuyển mảng sang PHP (có thể sử dụng lệnh gọi Ajax)
Tôi đã tải xong khuôn khổ jquery để làm việc.

Cách tốt nhất để chuyển mảng sang PHP là gì?

Cảm ơn

angelwatt

Người điều hành danh dự
16 tháng 8, 2005
CÔNG DỤNG


  • Ngày 3 tháng 2 năm 2009
Bạn có thể giải thích thêm về độ dài và loại thông tin trong mảng cho cả hai chiều không? Nó có thể cung cấp cho một số người trong chúng ta một số ý tưởng về cách tiếp cận tốt nhất.

Thêm vào: Một số đoạn trích nhỏ. Ví dụ sử dụng một mảng 2x3.
PHP: // JavaScript function SendArray() { var arr = [[0,1], [2,3], [4,5]]; // 2x3 array var a = escape(arr.toString()); ajaxCall('phpPage.php?array='+a); // not a real function } // PHP // Grab passed value, decode the query passed in, then explode it based on the comma $passedArray = explode(',', rawurldecode($_GET['array'])); // result: 0,1,2,3,4,5 $newArray = array(); // process the string for ($a=0, $b=0, $c=count($passedArray); $b<$c;) { $newArray[$a][0] = $passedArray[$b++]; $newArray[$a++][1] = $passedArray[$b++]; }

Me1000

Áp phích gốc
Ngày 15 tháng 7 năm 2006
  • Ngày 3 tháng 2 năm 2009
Cả hai phần mờ đều chứa một chuỗi văn bản nhỏ.
Đầu tiên là tên tệp.
Thứ hai là chú thích cho tệp được đặt tên ở chế độ mờ đầu tiên.

Tôi sẽ xem xét thêm mã của bạn vào ngày mai, cảm ơn bạn đã giúp đỡ!
:quả táo:

angelwatt

Người điều hành danh dự
16 tháng 8, 2005
CÔNG DỤNG
  • Ngày 4 tháng 2 năm 2009
Me1000 cho biết: Cả hai dims đều chứa một chuỗi văn bản nhỏ.
Đầu tiên là tên tệp.
Thứ hai là chú thích cho tệp được đặt tên ở chế độ mờ đầu tiên.

Tôi sẽ xem xét thêm mã của bạn vào ngày mai, cảm ơn bạn đã giúp đỡ!
:quả táo:

Miễn là các chuỗi đó không chứa bất kỳ dấu phẩy nào, tôi nghĩ mã của tôi sẽ có một khởi đầu tốt. Tôi không cung cấp mọi thứ bạn cần, nhưng nếu bạn cần hướng dẫn thêm hoặc làm rõ, hãy cho tôi biết.

Ngoài ra, nếu ai khác có ý tưởng xin vui lòng chia sẻ. Tôi chỉ đưa ra ý tưởng đầu tiên đến với tôi.

Me1000

Áp phích gốc
Ngày 15 tháng 7 năm 2006
  • Ngày 4 tháng 2 năm 2009
Tôi có thể thấy mọi người sử dụng dấu phẩy trong chú thích ...

angelwatt

Người điều hành danh dự
16 tháng 8, 2005
CÔNG DỤNG
  • Ngày 4 tháng 2 năm 2009
Me1000 cho biết: Tôi có thể thấy mọi người sử dụng dấu phẩy trong chú thích ...

Hmm, cuộc gọi tốt. Sau đó, một giải pháp thay thế là tách các giá trị mảng bằng cách sử dụng một cái gì đó khác với dấu phẩy. Vì vậy, một hàm mới sẽ cần được tạo để sử dụng thay vì hàm toString () nối liền các phần tử mảng. Có thể sử dụng '|' hoặc một số ký tự được sử dụng không phổ biến hoặc bạn có thể sử dụng một vài ký tự, ví dụ: '| @ |'. Sau đó, trong PHP khi bạn mở chuỗi, bạn sẽ nhập (các) ký tự mà bạn đã sử dụng làm dấu phân tách.

Đó là điều bạn có thể làm hay bạn cần hướng dẫn?

Me1000

Áp phích gốc
Ngày 15 tháng 7 năm 2006
  • Ngày 4 tháng 2 năm 2009
Được rồi, đây là những gì tôi đã nghĩ ra ...
Mã: function toStringComplex(array) { var string; for(var i = 0; i
Tôi chuyển một chuỗi vào tệp php

Mã: window.location = 'parseData.php?data='+a; Đó có thể không phải là mã cuối cùng của tôi để gửi nó đến tệp php, nhưng hiện tại thì đó là mã dễ làm việc nhất.

vấn đề là,
url của tôi trông giống như sau:
Mã: parseData.php?data=undefined|@|IMG_0608%2CIMG_0608|@|blahblah|@|blahblah...
Phần 'không xác định' đó ở phần đầu đang gây ra sự cố khi tôi phân tích dữ liệu.

Bất kỳ ý tưởng tại sao điều đó đang xảy ra?

khi tôi gọi
Mã: alert(itemsAll[0][0]); nó hiển thị kết quả chính xác, vì vậy tôi biết mảng ban đầu của tôi tốt

angelwatt

Người điều hành danh dự
16 tháng 8, 2005
CÔNG DỤNG
  • Ngày 4 tháng 2 năm 2009
Đúng vậy, trong vòng lặp for của bạn, bạn có string = string + ..., nhưng chuỗi không được khai báo lần đầu tiên. Ngay trước vòng lặp for khi bạn khai báo biến chuỗi, hãy đặt nó bằng '' để nó có giá trị bắt đầu.

Ngoài ra, bạn có thể sẽ cần một vòng lặp for gấp đôi vì bạn muốn làm việc với mảng đa chiều.

Me1000

Áp phích gốc
Ngày 15 tháng 7 năm 2006
  • Ngày 4 tháng 2 năm 2009
cây cung!

Cảm ơn sự giúp đỡ của bạn.


Đoạn mã javascript cuối cùng mà tôi đã kết thúc, dành cho những người bạn quan tâm:

Mã: function toStringComplex(array) { var string; for(var i = 0; i

savar

Ngày 6 tháng 6 năm 2003
Đặc khu Columbia
  • Ngày 4 tháng 2 năm 2009
Có vẻ như bạn đã tìm ra nó, nhưng bạn cũng có thể muốn thực hiện một số nghiên cứu về JSON.

JSON (Ký hiệu đối tượng Javascript) cho phép bạn mã hóa các đối tượng javascript trong một ký hiệu nhỏ gọn có thể được gửi qua dây. Hầu hết các ngôn ngữ khác đều có thư viện để phân tích cú pháp JSON này thành các đối tượng gốc. Tôi chắc rằng nếu bạn nghiên cứu nó, bạn sẽ hiểu rõ hơn ý tôi muốn nói.