i am using drupal 7 FAPI to create nodes through a custom form. the code below creates the nodes and assign them with a title and a body, so if i wanted static field values everything was perfect. my problem is, i want the value of $body_text
to be determined by the user's input in the "order" textfield. i tried doing something like -
$body_text = $form['name'];
but that didn't work.
this is the code i'm using -
<?php
function nodeform_menu() {
$items = array();
$items['nodeform/form'] = array(
'title' => t('My form'),
'page callback' => 'nodeform_form',
'access arguments' => array('access content'),
'description' => t('My form'),
'type' => MENU_CALLBACK,
);
return $items;
}
function nodeform_form() {
return drupal_get_form('nodeform_my_form');
}
function nodeform_my_form($form, &$form_state) {
$form['box'] = array(
'#type' => 'markup',
'#prefix' => '<div id="box">',
'#suffix' => '</div>',
'#markup' => '<h1>Initial markup for box</h1>',
);
$form['order'] = array(
'#type' => 'textfield',
'#title' => t('My order'),
'#default_value' => 'Products',
);
$form['submit'] = array(
'#type' => 'submit',
'#ajax' => array(
'callback' => 'ajax_example_submit_driven_callback',
'wrapper' => 'box',
'name' => 'submit1',
),
'#value' => t('Submit'),
);
$body_text = $form['order'];
$node = new StdClass();
$node->type = 'page';
$node->status = 1;
$node->title = "name";
$node->language = LANGUAGE_NONE;
$node->body[$node->language][0]['value'] = $body_text;
$node->language = LANGUAGE_NONE;
node_save($node);
return $form;
}
can anyone help me understand how to do this? i tried googling and reading the FAPI guide's but couldn't figure it out... plus, this is the first time i am using FAPI so in-spite the code is working, if anyone have any insights on this code (such as coding it more properly) i would also very appreciate that.