【发布时间】:2011-06-15 20:08:40
【问题描述】:
我正在一个函数中创建一个 URL,在 hook_form_alter 的实现中使用它来添加一个新按钮(我正在尝试解决这个问题:Drupal - Creating 'add another' buttons on node edit forms that will retain node relationships):
hook_form_alter的相关部分:
if ($form_id === 'image_node_form') {
$form['buttons']['submit_again'] = array(
'#type' => 'submit',
'#value' => t('TEST'),
'#weight' => 41,
'#submit' => array('node_form_submit', 'add_another_node_form_submit'),
);
}
哪个使用函数:
function add_another_node_form_submit($form, &$form_state) {
$refnode = $form['field_gallery'][0]['nid']['#default_value'];
$refnode = 'node/add/image/'.$refnode.'?destination='.$_REQUEST['destination'];
unset($_REQUEST['destination'], $_REQUEST['edit']['destination']);
$form_state['redirect'] = $refnode;
}
修改后的形式:
<form action="/node/add/image/189?destination=marketplace%252Fproperties%252Ftest" accept-charset="UTF-8" method="post" id="node-form" enctype="multipart/form-data">
<div>
<div class="node-form">
<div class="standard">
<input type="hidden" name="changed" id="edit-changed" value="" />
<input type="hidden" name="form_build_id" id="form-9869451ca1d3c9b91806442e39026622" value="form-9869451ca1d3c9b91806442e39026622" />
<input type="hidden" name="form_token" id="edit-image-node-form-form-token" value="5b0ddf4a6a9bc7f54a61c666230169bf" />
<input type="hidden" name="form_id" id="edit-image-node-form" value="image_node_form" />
<input type="hidden" name="flag_friend_control" id="edit-flag-friend-control" value="" />
<div class="form-item" id="edit-field-gallery-0-nid-wrapper">
<label for="edit-field-gallery-0-nid">Marketplace item: </label>
test
</div>
<div id="edit-field-image-0-ahah-wrapper"><div class="form-item" id="edit-field-image-0-upload-wrapper">
<label for="edit-field-image-0-upload">Image: <span class="form-required" title="This field is required.">*</span></label>
<div class="filefield-element clear-block"><div class="widget-edit"><input type="hidden" name="field_image[0][fid]" id="edit-field-image-0-fid" value="0" />
<input type="hidden" name="field_image[0][list]" id="edit-field-image-0-list" value="1" />
<div class="form-item" id="edit-field-image-0-upload-wrapper">
<div class="filefield-upload clear-block"><input type="file" name="files[field_image_0]" class="form-file" id="edit-field-image-0-upload" size="22" />
<input type="submit" name="op" id="edit-field-image-0-filefield-upload" value="Upload" class="form-submit" />
</div>
<div class="description">Maximum file size: <em>2 MB</em><br />Allowed extensions: <em>png gif jpg jpeg</em></div>
</div>
</div></div>
</div>
</div><div class="form-item" id="edit-title-wrapper">
<label for="edit-title">Caption: <span class="form-required" title="This field is required.">*</span></label>
<input type="text" maxlength="255" name="title" id="edit-title" size="60" value="" class="form-text required" />
</div>
<fieldset class=" collapsible collapsed"><legend>Comment settings</legend><div class="form-radios"><div class="form-item" id="edit-comment-0-wrapper">
<label class="option" for="edit-comment-0"><input type="radio" id="edit-comment-0" name="comment" value="0" checked="checked" class="form-radio" /> Disabled</label>
</div>
<div class="form-item" id="edit-comment-1-wrapper">
<label class="option" for="edit-comment-1"><input type="radio" id="edit-comment-1" name="comment" value="1" class="form-radio" /> Read only</label>
</div>
<div class="form-item" id="edit-comment-2-wrapper">
<label class="option" for="edit-comment-2"><input type="radio" id="edit-comment-2" name="comment" value="2" class="form-radio" /> Read/Write</label>
</div>
</div></fieldset>
</div>
<div class="admin">
<div class="authored">
</div>
<div class="options">
</div>
</div>
<input type="submit" name="op" id="edit-submit" value="Save" class="form-submit" />
<input type="submit" name="op" id="edit-preview" value="Preview" class="form-submit" />
<input type="submit" name="op" id="edit-submit-again" value="TEST" class="form-submit" />
</div>
</div></form>
提交时,URL 显示(例如):
/node/add/image/214%3Fdestination%3Dmarketplace%25252Fproperties%25252Ftest-0
如何停止保留字符“?”并且 '?destination=' 中的 '=' 被转换为十六进制实体?
【问题讨论】:
-
这段代码中没有任何东西执行 HTML 实体转换。
-
哪些字符在什么时候被转换?你能举个例子吗?
-
嗯,我已经编辑了问题,希望现在更清楚......
-
这很奇怪 - 正如 Tomalak 所说,执行转换的代码中没有任何内容。你能显示表单的确切 HTML 源代码吗?
-
您应该向我们提供有关使用的框架或功能集的更多信息。