2012-08-25 71 views
0

請幫助..PHP函數調用和數組傳遞在Javascript代碼

我有一個動態的形式,的元素是不固定的,我需要在窗體上執行JS驗證。我有一個PHP函數,它將返回當前在窗體中顯示的所有元素的數組。我想在JS代碼中使用這個..

我想要的東西LYK DIS ::

function checkValidation() { 

    <?php echo 
    // php function call 
    $arrColumnsInfo = $this->fetch_fields_info(); 
    print('<pre>'); 
    print_r($arrColumnsInfo); 
    print('</pre>'); 
    ?> 
} 

不工作的me..throws JS錯誤.. OR這個..

function checkValidation() { 
    <?php= 
    // php function call 
    $arrColumnsInfo = $this->fetch_fields_info();?> 
    alert(<?=$arrColumnsInfo?>); 
} 

再次..不..工作

我的PHP陣列輸出:

Array 
(
[client_code] => Client Code::1::Basic company Info::desc::TB 
[entity_name] => Entity Name::1::Basic company Info::::TB 
[type_of_entity] => Type of entity::1::Basic company Info::Type of entity,Sole trader,Partnership,Australian Private Company, other::DD 
[fixed_fees] => fixed fees::8::Fees Related::yes,no::RD 
[billing_time] => Billing time::8::Fees Related::Weekly,Fortnightly,Monthly,Yearly::DD 
) 

這裏使用的關鍵字是表單元素的名稱.. 例如。我建立我的形式LYK DIS ..

<input type="text" name="client_code" value="">... 

等..並以同樣的方式是動態創建的所有表單元素。現在我想驗證這個表單,所以我再次需要javascript中的這個數組。

+0

在js中定義數組稍有不同,然後PHP .. –

+0

但是必須有可能在JS代碼中訪問PHP數組。 –

+0

您需要在表單提交之前驗證每個動態生成的元素? – coolguy

回答

0

你的PHP代碼有可能產生的結果是這樣的:

var arr = <?php echo $arr; // result: [1,2,3,4,5,6,7] ?> 

或其他array()格式在JavaScript支持..

這只是一個例子。

看看給的鏈接:Array in Javascript這個鏈接告訴你,你需要什麼樣的格式來使用數組。

-2

數據不足以幫助你@disha。請提供更多內容並編輯它。 在你的第一行php中,這個'='是什麼?提供一些可以幫助你的更多細節。 快樂編碼!

+0

這必須是一個評論..甚至沒有接近答案 – coolguy

+1

你應該使用這個討論的評論領域.. –

+0

我只是試圖在一種方式..我需要調用這個PHP函數。所以想嘗試像dis .. –

1

您可以使用json_encode將您的PHP數組轉換爲可以被JavaScript使用的from。

function checkValidation() { 
    var data = <?php echo json_encode($this->fetch_fields_info()) ?>; 
    // ... run your client-side checks 
    alert(data); 
} 

請記住,您始終必須提供有效的JavaScript代碼。 如果你堅持用內聯PHP編寫JavaScript代碼,那麼這有時會非常棘手。

您至少應該考慮在服務器端(使用PHP)進行驗證,並且只將結果傳遞給客戶端。

+1

嘿..我試過你的代碼。 它不適合我。當我提醒(數據)它給了我空的結果。 –

+0

嘗試var data ='<?php echo json_encode($ this-> fetch_fields_info())?>'; –

相關問題