2014-12-14 1 views
1

У меня есть 3 div s, когда пользователь нажимает на каждый из них, загружается конкретное содержимое формы. до этой части нет проблем, но после этого я не могу вставить их в mysql.Вставить загруженные данные с помощью ajax в источник страницы, чтобы вставить их в mysql

HTML:

<div id="adds"> 
    <div onclick="show_content('value1',this)" class="add selected">first div</div> 
    <div onclick="show_content('value2',this)" class="add">second div</div> 
    <div onclick="show_content('value3',this)" class="add">third div</div> 
    </div> 
    <div class="clear"></div> 
    <div id="add_form"></div> 
     <?php 
      if(!empty($error)) { 
     ?> 
     <script type="text/javascript"> 
      $(".error").html(" <?php echo $error;?> "); 
      $(".error").slideDown(function(){ 
       $(this).animate({top: '50%'}); 
      }); 
      $(".error_back").fadeIn(); 
      $("body").css("overflow" , "hidden"); 
      setTimeout(function(){ 
      $(".error").animate({top: '-74px'}, function(){ 
       $(this).slideUp(); 
      }); 
      $(".error_back").fadeOut(); 
      $("body").css("overflow" , "auto"); 
      },2000); 
     </script> 
     <?php 
      } 
     ?> 

и JQuery:

<script type="text/javascript"> 
    function show_content(type_name,selected){ 
    datastring = "type_name=" + type_name; 
    $.ajax({ 
      type: "POST", 
      url: "motor.php", 
      data: datastring, 
      cache: false, 
      success: function(html) { 
       $("#add_form").hide().html(html).fadeIn(); 
      } 
    }); 
      return false; 
    } 
    </script> 

и PHP:

if(!empty($_POST['type_name'])) { 
    if($_POST['type_name']=='value_1') { 
     include('add_dore.php'); 
     if(isset($_POST['add_value_1_submit'])) { 
      $value_1 = $_POST['value_1']; 
      if(empty($value_1)) { 
       $error = "inter value 1"; 
       }else{ 
       mysql_query("INSERT INTO `value_1`(
        'id' , 
        'value_1' , 
       )VALUES(
        NULL , 
        '$value_1' 
       )"); 
      } 
     } 
    }elseif($_POST['type_name']=='value_2') { 
     include('value_2.php'); 
    }elseif($_POST['type_name']=='value_3') { 
     include('value_3.php'); 
    } 
} 

* на данный момент, я просто написал данные для VALUE_1:

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> 
     <label for="value_1">value title:</label> 
     <input type="text" name="value_1" <?php if(!empty($value_1)) echo "value=\"$value_1\""; ?> /> 
</form> 
+0

не читал все, но у вас есть 'if (isset ($ _ POST ['add_value_1_submit'])) {' и '$ _POST ['value_1']', но вы не отправляете 'add_value_1_submit' или' value_1' в вашем '$ .ajax ({...});' only 'type_name'. – Sean

+0

@Sean, как я могу это сделать? –

+0

Простым способом является добавление их в ваш 'datastring' ->' datastring = "type_name =" + type_name + "& add_value_1_submit = true & value_1 = value1"; '. – Sean

ответ

0

Я нашел проблему.

Я говорю ajax, чтобы перейти к motor.php. и после этого вы знаете, мы должны делать вставки и т. д. на нашей первой странице. Я написал вставку на странице двигателя, и это была моя проблема.

0

Проблема может быть в SQL запросе

mysql_query("INSERT INTO `value_1`(
       'id' , 
       'value_1' , 
      )VALUES(
       NULL , 
       '$value_1' 
      )" 

Если идентификатор автоинкремент затем написать запрос без него

mysql_query("INSERT INTO `value_1`(
       'value_1' , 
      )VALUES(
       '$value_1' 
      )" 
+0

№. Проблема @Anton включена. PHP-файл не отображается в источнике страницы для обработки и вставки в базу данных. В нормальной ситуации и без AJAX включенный PHP-файл будет вставляться в источник страницы. –

0
mysql_query("INSERT INTO value_1('id','value_1') VALUES('','".$value_1."')"; 
+0

Этот ответ ложный, я думаю. И нет никаких проблем с кодом вставки базы данных. –

+0

удалить 'return false' из jquery –

+0

нет разницы. Снова данные не вставлялись. –

Смежные вопросы