【发布时间】:2017-08-31 09:54:02
【问题描述】:
我有一个 PHP cURL 脚本,可以将内容上传到 Drupal 7 网站。我使用<input> 的name 并通过POST 请求发送值。我偶然发现了一个选择标签,不幸的是,它连接了另一个选择。两个<select>s 选项都以type="hidden" <input> 结尾,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 请求命令是:
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> 元素的值?
【问题讨论】:
-
您能与我们分享您正在使用的 cURL 请求命令吗?另外,您是否尝试过在您的 HTML 代码上使用 linter?在编辑您的帖子时,我必须更正几个空格。我希望这些是不相关的拼写错误,否则,这些可能会影响您的结果。
-
curl_setopt ($crl, CURLOPT_POSTFIELDS, $postdata); $result=curl_exec($crl);这是你想要的吗?我已经成功发布了内容,只是无法从第二个选择中指定子类别
-
是的。我已将此添加到您的问题中。
-
<input>如何从<select>获取数据?在您的curl请求中,我可以看到您正在为<input>设置数据,但是“title_field”是什么? -
在 drupal 表单中有一个添加选项,可将所有选定的类别和子类别添加到表格和 内部,因此使用 javascript.Drupal 添加 5 个大型 js 文件很难找到特定的东西。“title_field”只是表单的另一个输入。