*長い投稿で申し訳ありません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
の組み合わせです。radio
dropdown
- フォームには含まれています
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
の でリロードされたページをトリガーするイベントに注意してください。dropdwon
options
私が達成しようとしていること
各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
明確にするために。このフォームは私のサーバー上になく、私が所有または運営しているものではありません。フォームから返されたデータをスクレイピングするつもりです。