0
我正在構建一個窗體,其中的值將構建一個對象的調用數組。對象調用使用thumbor圖像處理服務生成圖像URL。表單輸入構建對象調用字符串提交
目標:使用html表單構建$obj -> methodOne() -> methodTwo();
查詢,並使用ajax輸出響應。
典型PHP對象調用應該是這樣的:
echo $thumbnailUrlFactory
-> url('http://example.com/image.jpg')
-> fitIn('500', '400')
-> addFilter('Brightness', '70')
-> smartCrop('True');
輸出看起來是這樣的: http://myserver.com/SECURITY_HASH_STRING/500x400/filters:brightness(70)/smart/http://example.com/image.jpg
HTML表單
<form>
<input type="text" name="image_url"> <!-- Value: http://example.com/image.jpg -->
<input type="text" name="fit_in"> <!-- Value: '500', '200' -->
<input type="text" name="filters['brightness']['value']"> <!-- Value: 70 -->
<input type="text" name="filters['contrast']['value']"> <!-- Value: 40 -->
<button type="submit">Submit</button>
</form>
重要事情o注意大概有30種不同的過濾器和8種不同的作物類型。我不能只是建立一個調用每個可能選項的php調用,因爲它會覆蓋一些其他調用。
我的表單將顯示URL並且適合加載時的輸入字段。 然後我有一個按鈕來添加額外的字段對:一個「過濾器名稱」和一個「過濾器值」。
什麼是最好的方法來處理?
所以如果你想使用的值從提交的表格,讓您的命令時,它會是什麼($ _ POST [「image_url」]) - > fitIn($ _ POST [「fit_in_1」],$ _POST [「fit_in_2」]) - > addFilter($ _ POST [「filter_name」 ],$ _P OST [「filter_value」]) - > smartCrop($ _ POST [「smart_crop」]);(這和你的示例中的名稱略有不同,看起來不太合適)。當然,你希望在將它們直接傳遞給你的方法之前驗證所有的輸入,但是希望這可以給你提供想法。 – ADyson
你是對的 - 但是,假設'brightness'變量是空的。這會在URL字符串中留下'/ filters:brightness()/'。所以它需要包含一個'if'語句。如果設置了亮度,請添加適當的方法調用。目前,如果在調用之前使用if if將產生500錯誤。 –
這就是進行呼叫之前驗證數據的過程。如果這不是可接受的情況,請停止執行並向用戶返回錯誤,要求他們完成所有必填字段。 – ADyson