2014-01-18 5 views
0

Добрый день.Смешивание jquery и формы

Я пытаюсь отправить форму php (которая отправит ее в базу данных mysql), проблема в том, что я могу представить текстовое описание и текстовое содержимое, но категория и подкатегория выбранный сценарием, и я не могу получить к ним доступ. Я передаю свой код. Я новичок в jquery и php. Я потратил много часов, пытаясь решить его без успеха. Заранее спасибо.

 <?php require_once ('../../includes/select.php');?> 
    <?php 
    if (!$_POST['descricao'] == "") { 
$sql = "INSERT INTO conteudos(descricao,conteudo,categorias_id,subcategorias_id)      VALUES('" . $_POST['descricao'] ."','" .$_POST['conteudo'] ."','" . $_POST['categoria'] ."','" . $_POST['subcategoria'] ."');"; 
$sqlconf = mysql_query($sql); 
if (!empty($sqlconf)){ 
    $message = "O novo conteudo foi criado com sucesso."; 
} 
else { 
    $message = "Erro na criação do conteudo, tente novamente."; 
} 
    } 
    ?> 

    <script type="text/javascript"> 
      $(document).ready(function(){ 

     $("select#subcategoria").attr("disabled","disabled"); 
     $("select#categoria").change(function(){ 
     $("select#subcategoria").attr("disabled","disabled"); 
     $("select#subcategoria").html("<option>aguarde...</option>"); 
     var id = $("select#categoria option:selected").attr('value'); 
     $.post("selec_subcategoria.php", {id:id}, function(data){ 
      $("select#subcategoria").removeAttr("disabled"); 
      $("select#subcategoria").html(data); 
     }); 
    }); 
    $("#seleciona").submit(function(){ 
     var desc = $("#descricao").text(); 
     var cont = $("#conteudo").text(); 
     var cat = $("select#categoria option:selected").attr('value'); 
     var subcat = $("select#subcategoria option:selected").attr('value'); 
     event.preventDefault(); 
     $("#result").html(''); 
     //var values = $(this).serialize(); 
     if(cat>0 && subcat>0) 
     { 
      $.ajax({ 
       url: "index.php?pagina=gere_conteudos.php", 
       type: 'POST', 
       data: $("#seleciona").serialize(), 
       success: function(){ 
        alert("success"); 
        $("#result").html('Submitted successfully'); 
       }, 
       error:function(){ 
        alert("failure"); 
        $("#result").html('There is error while submit'); 
       } 
      }); 
      /*$.post('index.php?pagina=gere_conteudos.php', { descricao: desc}); 
      $.post('index.php?pagina=gere_conteudos.php', { conteudo: cont}); 
      $.post('index.php?pagina=gere_conteudos.php', { categoria: cat}); 
      $.post('index.php?pagina=gere_conteudos.php', { subcategoria: subcat}); 
      //$("#result").html('A sua escolha: '+result);*/ 
      $("#teste").html(desc); 
      $("#teste2").html(cont); 
     } 
     else 
     { 

      $("#result").html("Tem de escolher todas as opções disponiveis!"); 

     } 
     //return false; 
    }); 
}); 
     </script> 

    <h2 class="title"><a href="#">SIB - Gestão de conteudos</a></h2> 
    <p class="meta">Domingo, Dezembro 03, 2013 7:27 AM Posted by <a href="#">Someone</a></p> 
    <div class="entry"> 

<div class="tabelas" > 
    <p>Aqui deverá criar e gerir as publicações de conteudos para o seu sistema de informação de balcões. Só após a criação das categorias é que poderá criar as publicações de conteudos.</p> 


    <?php if (!empty($message)) { 
     echo "<p class=\"message\">" . $message . "</p>"; 
    } 
    ?> 
    <form id="seleciona"> 

     <table> 
      <tr> 
       <td>Descrição para a publicação a criar:</td> 
       <td> 
        <input type="text" id="descricao" name="descricao" maxlength="30" value="<?php echo htmlentities($descricao); ?>" /></td> 
      </tr> 
      <tr> 
       <td>Texto da publicação:</td> 
       <td> 
        <textarea id="conteudo" name="conteudo" rows="15" cols="55" ="<?php echo htmlentities($conteudo); ?>"> </textarea></td> 
      </tr> 
      <tr> 
      <tr> 
       <td>Escolha de categoria:</td> 
       <td> 
       <select id="categoria"> 
       <?php print $opt->ShowCategoria(); ?> 
       </select> 
      </tr> 
      <tr> 
       <td>Escolha de subcategoria:</td> 
       <td> 
       <select id="subcategoria"> 
        <option value="0">Escolha...</option> 
       </select> 
       </td> 
       </tr> 
      <tr> 
       <td colspan="2"> 
        <input type="submit" name="submit" value="Criar conteudo" /> 
       </td> 
      </tr> 
     </table> 
    </form> 
    <div id="teste"></div> 
</div> 

ответ

0

Проблема не имеет ничего общего с динамическими значениями; вы забыли поместить атрибут name, чтобы они не включались при сериализации формы с использованием data: $("#seleciona").serialize(),.

Изменение:

<select id="categoria"> 

к:

<select id="categoria" name="categoria"> 

и:

<select id="subcategoria"> 

к:

<select id="subcategoria" name="subcategoria"> 
+1

Спасибо, вы спасли мой день, вот и все. Как я не заметил! – Saguim

0

Элементы только формы с атрибутом name будут иметь свои значения при отправке формы. Вы должны добавить атрибут name в свои элементы ввода.

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