*長い投稿で申し訳ありませんpost*いくつかのフォーム フィールドにPHP で cURL を使用して、結果を返そうとしpostています。
cURL スクリプト
$ch = curl_init();
$data = array('field_1_name' => 'field_value',
'field_2_name' => 'field_value',
'field_3_name' => 'field_value',
);
curl_setopt($ch, CURLOPT_URL,'http://url.com');
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$fp = fopen('data.php', 'w');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_exec ($ch);
curl_close ($ch);
fclose($fp);
知っておくべきこと
- フィールドはフィールドではなく、とフィールド
text-fieldsの組み合わせです。radiodropdown - フォームには含まれています
JSが、firebug コンソールにはAJAX投稿が表示されません。代わりに、フォームはデータで動作しSESSIONSますHTTP-CACHE。 - フォーム フィールドが選択されると、ページが表示され
reload、次のドロップダウンの値が挿入されます。(ここでも、firebug はこれをAJAXリクエストとして表示していません。)
dropdownフォームのフィールドの例を次に示します。
<select name="field_name" onchange="document.getElementById('uploadForm').action.value='RELOAD';document.getElementById('uploadForm').reloadTrigger.value='trigSize';document.getElementById('uploadForm').submit();">
<option value="option_1">option_1</option>
<option value="option_2">option_2</option>
<option value="option_3">option_3</option>
</select>
nextとそれぞれonChangeの でリロードされたページをトリガーするイベントに注意してください。dropdwonoptions
私が達成しようとしていること
各dropdownフィールドには、さまざまなオプションが含まれています。フォームで選択された組み合わせに基づいて、最終ページのリロードにより、選択されたこれらのオプションに基づいた価格が返されます。選択した価格とオプションをデータベースに保存する必要があります。
したがって、私のデータベースは次のようになります。
option_1 | option_2 | option_3 | price |
field_1 | field_2 | field_3 | 25 |
経験のある人が私をより良い方向に向ける可能性があるため、このすべての情報を含めています(つまり、toots/libraries/tutorials/etc.)cURLがこの仕事に適しているかどうかわかりません。と一緒に仕事をする方が好きPHPです。それで、あなたたちはどう思いますか?お時間とご提案をいただきありがとうございます。役立つ情報を歓迎し、感謝します。
-- 補足 -- 私は、情報のスクレイピングに成功しているスクリプトをRUBY使用して作成しましWATIR-WebDriverたが、動作が遅すぎます。各製品には平均で 5,000 の異なる組み合わせがあり、この方法では 1 分あたり約 10 しか返されませんでした。(不合格)
編集 1
明確にするために。このフォームは私のサーバー上になく、私が所有または運営しているものではありません。フォームから返されたデータをスクレイピングするつもりです。