how to dynamically add new fields to a form using ajax?
You've got the parameters the wrong way round in your callback function; and you should probably take $form_state by reference if you need to change it:

function ajax_callback($form, &amp;$form_state){
  $form_state['rebuild']=true;
  return $form['city'];
}