2014-12-09 5 views
0

Я должен отредактировать чужой код на веб-сайте (этот человек недоступен), и у меня нет большого опыта работы на php. На мгновение эта форма перенаправляется на предыдущую страницу в submit. Я должен изменить его, чтобы перезагрузить текущую страницу. Я неоднократно предпринимал попытки изменить поле действия формы, но все они приводят либо к пустой странице, либо к странице, к которой она была перенаправлена. Может ли кто-то поделиться небольшим знанием здесь?php form - reload on submit

<div id="tab-general" class="tab-content"> 
     <form action="<?php echo $action; ?>" method="post" enctype="multipart/form-data" id="form"> 
     <table> 
      <tr> 
      <td><span class="required">*</span>&nbsp;<?php echo $entry_title; ?></td> 
      <td><input type="text" value="<?php echo $title; ?>" name="title" id="title" /><br /> 
      <?php if ($error_title) { ?> 
       <span class="error"><?php echo $error_title; ?></span> 
      <?php } ?></td> 
      </tr> 
      <tr> 
      <td><span class="required">*</span>&nbsp;<?php echo $entry_name; ?></td> 
      <td><input type="text" value="<?php echo $name; ?>" name="name" id="name" /><br /> 
      <?php if ($error_name) { ?> 
       <span class="error"><?php echo $error_name; ?></span> 
      <?php } ?></td> 
      </tr> 
      <tr> 
      <td><span class="required">*</span>&nbsp;<?php echo $entry_email; ?></td> 
      <td><input type="text" value="<?php echo $email; ?>" name="email" id="email" /><br /> 
      <?php if ($error_email) { ?> 
       <span class="error"><?php echo $error_email; ?></span> 
      <?php } ?></td> 
      </tr> 
      <tr> 
      <td><span class="required">*</span>&nbsp;<?php echo $entry_end_date; ?></td> 
      <td><input type="text" value="<?php echo $end_date; ?>" name="end_date" id="end_date" /><br /> 
      <?php if ($error_end_date) { ?> 
       <span class="error"><?php echo $error_end_date; ?></span> 
      <?php } ?></td> 
      </tr> 
      <tr> 
      <td><?php echo $entry_type; ?></td> 
      <td><select name="type" id="type" class="type_list"> 
       <?php if ($type) { ?> 
       <option value="1" selected="selected"><?php echo $text_private; ?></option> 
       <option value="0"><?php echo $text_public; ?></option> 
       <?php } else { ?> 
        <option value="1"><?php echo $text_private; ?></option> 
        <option value="0" selected="selected"><?php echo $text_public; ?></option> 
       <?php } ?> 
      </select></td> 
      </tr> 
      <tr> 
      <td><?php echo $entry_status; ?></td> 
      <td><select name="status"> 
      <?php if ($status) { ?> 
       <option value="1" selected="selected"><?php echo $text_enabled; ?></option> 
       <option value="0"><?php echo $text_disabled; ?></option> 
       <?php } else { ?> 
       <option value="1"><?php echo $text_enabled; ?></option> 
       <option value="0" selected="selected"><?php echo $text_disabled; ?></option> 
       <?php } ?> 
      </select></td> 
      </tr> 
      <tr> 
      <td><br /><h2><?php echo $text_invitees; ?></h2></td> 
      <td></td> 
      </tr> 
     </table> 
     <table id="attendee" class="list"> 
      <thead> 
      <tr> 
       <td class="left"><?php echo $entry_att_name; ?></td> 
       <td class="right"><?php echo $entry_att_email; ?></td> 
       <td></td> 
      </tr> 
      </thead> 
      <tfoot> 
      <tr> 
       <td colspan="2"></td> 
       <td class="left"><a onclick="addAttendee();" class="button"><?php echo $button_add; ?></a></td> 
      </tr> 
      </tfoot> 
      <?php $attendee_row = 0; ?> 
      <?php if ($attendees) { ?> 
      <?php foreach ($attendees as $attendee) { ?> 
      <tbody id="attendee-row<?php echo $attendee_row; ?>"> 
       <tr> 
       <td class="left"><input type="text" name="attendee[<?php echo $attendee_row; ?>][name]" value="<?php echo $attendee['name']; ?>" size="18" /> 
       <?php if (isset($error_name_attendee[$attendee_row])) { ?> 
        <span class="error"><?php echo $error_name_attendee[$attendee_row]; ?></span> 
       <?php } ?> 
       </td> 
       <td class="right"><input type="text" name="attendee[<?php echo $attendee_row; ?>][email]" value="<?php echo $attendee['email']; ?>" size="18" /> 
       <?php if (isset($error_email_attendee[$attendee_row])) { ?> 
        <span class="error"><?php echo $error_email_attendee[$attendee_row]; ?></span> 
       <?php } ?> 
       </td> 
       <td class="left"><a onclick="$('#attendee-row<?php echo $attendee_row; ?>').remove();" class="button"><?php echo $button_remove; ?></a> 
       </td> 
       </tr> 
      </tbody> 
      <?php $attendee_row++; ?> 
      <?php } ?> 
      <?php } ?> 
     </table> 
     <div class="buttons"><div class="left"> 
     <a onclick="$('#form').submit();" class="button"><?php echo $button_save; ?></a></div><div class="right"><a onclick="location = '<?php echo $cancel; ?>';" class="button"><?php echo $button_cancel; ?></a> 
     </div></div> 
    </div> 

После проверки содержимого переменной $ action оказывается, что она содержит ссылку на текущую страницу. Он ДОЛЖЕН перезагрузить страницу, но это не так.

пример: это ссылка

localhost/index.php?route=account/projects/editProject&project_id=1&akey=98c27892d1e2a13c0dfb9086539f8275 

и она хранится в переменной $ действия. Вместо этого направление направлено на ссылку

localhost/index.php?route=account/projects 
+0

Вы должны проверить значение '$ action' переменный –

+0

где определено действие $? измените, что – black

+0

определил многие строки mane кода до ... после эха, я обнаружил, что он содержит правильную ссылку. но по какой-то причине он не работает. – Anonymous

ответ

0

Переменная $ action здесь, а вторая строка должна содержать страницу, которую вы хотите перезагрузить.

2

Убедитесь, что ваше действие имеет путь, равный вашей странице пути, то он будет представлять свои значения формы и останется на той же странице , если эта страница имеет путь, например /home/index.php затем

<form action="/home/index.php" method="post" enctype="multipart/form-data" id="form"> 

и если вы есть получить путь от вашей $action переменной попробуйте echo $action;, чтобы убедиться, что у вас есть такой же путь текущей страницы

0

Если вы хотите, чтобы форма представить на текущей странице, просто удалите action на ttribute из вашего тега формы. Тем не менее, вы должны выполнить проверку на submision данных произошли или нет для предотвращения визуализации формы или reapeated представления к форме некоторые вещи, как следующее:

<?php if (isset($_POST['title']) && $_POST['title'] != ''): ?> 

//Perform form data processing 

<?php else: ?> 
// Your form code 

<?php endif; ?> 
+0

Я удалил атрибут action, и он каким-то образом перенаправляется на ту же страницу! – Anonymous

+0

@ Анонимный проверить ваш код javascript, который выполняет отправку. Или убедитесь, что страница не отображается из кеша – SaidbakR