2016-07-16 2 views
0

У меня проблема с получением формы для вставки записей в базу данных. Я просто не могу понять, где я ошибаюсь ...Форма Представление Использование Ajax не работает

Моя форма пыльник

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
<script src="script.js"></script> 

<form id="form" name="form"> 
    <div> 
     <label>Name :</label> 
     <input id="name" type="text"> 
     <label>Email :</label> 
     <input id="submit" onclick="myFunction()" type="button" value="Submit"> 
    </div> 
</form> 

скрипт script.js

function myFunction() { 
    var name = document.getElementById("name").value; 
    var dataString = 'name1=' + name; 
    if (name == '') { 
     alert("Please Fill All Fields"); 
    } else { 
     $.ajax({ 
      type: "POST", 
      url: "ajaxjs.php", 
      data: dataString, 
      cache: false, 
      success: function(html) { 
       alert(html); 
      } 
     }); 
    } 
    return false; 
} 

и PHP скрипт ajaxjs.php

<?php 
include ('./includes/connection.php'); 
$name1 = $_POST['name1']; 
if (isset($_POST['name1'])) { 
    $query = mysql_query("INSERT INTO db VALUES('TEST','name1')"); 
} 
?> 

инструменты разработчика показать сообщение: script.js: 5 Uncaught ReferenceError: dataString является не definedmyFunction @ СБН ript.js: 5onclick @ test.html: 9

+1

Включите инструменты разработчика в своем браузере и узнайте об ошибке, связанной с обновлением вашего вопроса с помощью ошибки – Dan

+0

@Danturnip script.js: 5 Uncaught ReferenceError: dataString не определен myFunction @ script.js: 5onclick @ test.html: 9 – Menel

+0

Sidenote: даже если он работает без ошибок, вы должны вставлять константную строку ('name1') вместо опубликованного значения. – FirstOne

ответ

2

Ваш Ajax код работает хорошо Но ваш командный запрос выглядеть неправильно Пожалуйста, попробуйте

INSERT INTO table_name (column1,column2,column3,...) 
VALUES (value1,value2,value3,...); 

enter image description here

Обновление: Исходный код работает хорошо

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
<script type="text/javascript"> 
    function myFunction() { 
     var name = document.getElementById("name").value; 
     var dataString = 'name1=' + name; 
     if (name == '') { 
      alert("Please Fill All Fields"); 
     } else { 
      $.ajax({ 
       type: "POST", 
       url: "ajaxjs.php", 
       data: dataString, 
       cache: false, 
       success: function(html) { 
       alert(html); 
       } 
      }); 
     } 
     return false; 
    } 
</script> 
<form id="form" name="form"> 
<div> 
<label>Name :</label> 
<input id="name" type="text"> 
<label>Email :</label> 
<input id="submit" onclick="myFunction()" type="button" value="Submit"> 
</div> 
</form> 

И ajaxjs.php

<?php 
    // include ('./includes/connection.php'); 
    $name1 = $_POST['name1']; 
    echo $name1; 
    // if (isset($_POST['name1'])) { 
    // $query = mysql_query("INSERT INTO db VALUES('TEST','name1')"); 
    // } 
?> 
+1

Вы можете опустить имена столбцов, если вы указали значение для каждого столбца таблицы. [Ссылка] (http://dev.mysql.com/doc/refman/5.7/en/insert.html): _ Если вы не укажете список имен столбцов для INSERT ... VALUES [..], значения для каждый столбец в таблице должен быть предоставлен VALUES [...] _ – FirstOne

+1

Я думаю, что его запрос не работает, и я приведу один пример. –

+1

Да, брат, я это знаю. xD Я просто даю один полный пример xD –

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