2017-08-31 33 views
1

我有一個PHP cURL腳本,它將內容上傳到Drupal 7網站。我使用<input>name,並通過POST請求發送值。我偶然發現了一個選擇標籤,不幸的是,它有另一個選擇連接到它。這兩個<select>的選項最終都會結束爲type="hidden"<input>,其中POST請求從中獲取值。從不同的SELECT獲得cURL POST值

我的代碼:

// first select 
<select id="edit-kat-0" name="kat_epi[und][sel][0]" class="form-select"> 
    <option value="6080"> 
    // ... 
</select> 

// second select 
<select id="edit-kat-1" name="field_kat_epi[und][sel][1]" class="form-select"> 
    <option value="7090"> 
    // ... 
</select> 

// hidden input is used to send data 
<input type="hidden" name="kat_epix[und][hsid]" value="59a7b06e12df0" /> 

捲曲請求命令:

curl_setopt($crl, CURLOPT_POST, 1); 
    $postdata = array( 
       "title_field[und][0][value]"=>"emporio", 
       "kat_epix[und][hsid]"=>"6863", 
       "op"=>"Αποθήκευση", 
        ); 
    curl_setopt ($crl, CURLOPT_POSTFIELDS, $postdata); 
    $result=curl_exec($crl); 

我已經使用了隱藏<input>與值從第一<select>提交表單,但我不知道如何來自<select>元素的值合併。

我試圖用JavaScript來檢查值,但Drupal對它進行了編碼,使它無法知道。我嘗試了一些明顯的解決方案,比如「6080 + 7090」或「6080 & 7090」,但沒有運氣。有誰知道Drupal 7如何合併<select>元素的值?

+0

您能否與我們分享您使用的cURL請求命令?另外,你是否已經嘗試在你的HTML代碼中使用linter?編輯帖子時,我必須糾正一些空格。我希望這些是不相關的拼寫錯誤,否則,這些可能會影響你的結果。 –

+0

curl_setopt($ crl,CURLOPT_POSTFIELDS,$ postdata); $ result = curl_exec($ crl);這是你想要的嗎?我已經成功發佈了內容,只是無法從第二個選擇中指定子類別 –

+0

是的。我已將這添加到您的問題。 –

回答

0

這花了我很多的努力,但我終於設法自己解決這個問題。連接的SELECT是drupal Hierarchical Select模塊的一個功能。當選擇子菜單元素時,該模塊將刷新頁面。這樣,SELECT將從所有其他字段中分別使用POST請求。

我所做的是讓cURL調用分層SELECT,然後再調用其他字段.Firefox的網絡控制檯可以幫助您查看所有POST請求及其參數。