2016-07-21 75 views
1

我正在尋找一種可能性,讓用戶選擇腳本應在{{!COLn}}部分中使用的CSV輸入的哪個列。iMacros:用戶定義的變量!COLn?

PROMPT "Please enter CSV column:" !VAR1 

SET !DATASOURCE C:\User\Desktop\Test\testsource.csv 
SET !DATASOURCE_COLUMNS 100 
SET !DATASOURCE_LINE {{i}} 

URL GOTO=http://www.somewebsite.com 
TAG POS=1 TYPE=BUTTON ATTR=TXT:123:<SP>* 
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=* CONTENT={{!COLn}} 
TAG POS=1 TYPE=TD ATTR=TXT:{{!COLn}} 

n的!COLn應該被設置爲定義的變量!VAR1用戶。我現在知道如何!感謝所有的建議。

+0

我會建議,如果可能將所有的COL放到一個COL中,然後使用數據源循環函數來定義你的數據應該在哪一行被帶走。 但是在iMacros論壇上有一點小小的解決方法http://forum.imacros.net/viewtopic.php?f=11&t=26316 – Tanckom

回答

1

這是一個必須正常工作與數據源的前5列宏:

PROMPT "Please enter CSV column:" !VAR1 

SET !DATASOURCE C:\User\Desktop\Test\testsource.csv 
SET !DATASOURCE_COLUMNS 100 
SET !DATASOURCE_LINE {{i}} 

SET row "'{{!COL1}}', '{{!COL2}}', '{{!COL3}}', '{{!COL4}}', '{{!COL5}}'" 
SET col EVAL("var col = eval('[{{row}}]'); col[{{!VAR1}} - 1];") 

URL GOTO=http://www.somewebsite.com 
TAG POS=1 TYPE=BUTTON ATTR=TXT:123:<SP>* 
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=* CONTENT={{col}} 
TAG POS=1 TYPE=TD ATTR=TXT:{{col}} 

您應該手動編輯該行SET row ...以便它代表整個行,即包含所有'{{!COLn}}'分離用逗號。順便說一句,如果列數很大或/並且經常變化,我建議編寫一個額外的宏來爲你生成這個字符串。

1

不是一個簡單的答案,但你可以創建一個PHP網站(甚至免費),添加一個NXM矩陣/數據集,並有一個簡單的URL接口www.mysite.com/index.php?loop = {{! LOOP}} & col = {{!VAR1}}返回你想要的值