2015-07-22 2 views
-2

Мой index.php:форма проводки данных в базу данных MySQL с помощью AJAX и PHP

<html> 
<head> 
</head> 
<body> 

<form name="form1" action="submit.php" method='POST'> 
<select id="dropdown1" name="country" onchange="window.getStates()"> 
<option> Select Country</option> 
<option value="1">Pakistan</option> 
<option value="2">India</option> 
<option value="3">USA</option> 
<option value="4">UK</option> 
</select> 
<input type="text" id="area" style="display: none;" size="16" placeholder=" Enter value"></input> 
<input type="submit" id="submit" style="display: none" name="submit" value="submit" onclick="submit()"> 
</form> 
<script type="text/javascript"> 
function show() { 
{ document.getElementById('area').style.display = 'inline-block'; 
    document.getElementById('submit').style.display = 'inline-block';} 
} 
function getStates() 
{ 
var xmlhttp; 
try{ 
    xmlhttp = new XMLHttpRequest; 
}catch(e) 
{ 
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
} 
if (xmlhttp) 
{ 
    var form = document['form1']; 
    var country = form['country'].value; 

    xmlhttp.open("GET","http://localhost/getStates.php?country="+country,true); 
    xmlhttp.onreadystatechange = function() 
    { 
     if(this.readyState == 4) 
     { 
      var s = document.createElement("select"); 
      s.onchange=show; 
      s.id="dropdown2"; 
      s.name="state"; 
      s.innerHTML = this.responseText; 

      if(form['state']) 
      { 
       form.replaceChild(s, form['state']); 
      } 
      else 
       form.insertBefore(s,form['submit']); 
     } 
    } 
    xmlhttp.send(null); 
} 
} 

function submit() { 
    var table = document.getElementById("dropdown1").value; 
    var parameter = document.getElementById("dropdown2").value; 
    var value = document.getElementById("area").value; 
    $.ajaxSetup({ 
      url: "http://localhost/database.php", 
     type: "POST", 
    }); 
    $.ajax({ 
     data: 'table='+table+'&parameter='+parameter+'&value='+value+,  
     success: function (msg) { 
     alert (msg);}, 
     error: function (XMLHttpRequest, textStatus, errorThrown) 
     { 
     alert('Error submitting request.'); 
     } 

     }); 
} 
</script> 
</body> 
</html> 

мой getStates.php код:

<?php 

$states=array(
"1" => array("NWFP","Sindh","Bala","Punjab","Select"), 
"2" => array("gujrat","goa","U.P.","Select"), 
"3" => array("bgjs","hhtrs","Bhtrshts","Utah","Select"), 
"4" => array("England","Scotland","Bahwgla","Punthwthjab","Select") 
); 

if(isset($_GET['country'])) 
{ 
$c = $_GET['country']; 
if(isset($states[$c])) 
{ 
    for($i = count($states[$c]) -1; $i>=0; $i--) 
    { 
     echo "<option value='".$states[$c][$i]."'>".$states[$c][$i]."</option>"; 
    } 
} 
} 

?> 

database.php код:

<?php 
header('Content-type: text/html; charset=ISO-8859-1'); 
try 
{ 
if(isset($_POST['table']) && isset($_POST['parameter']) && isset($_POST['value'])){ 
$table = ($_POST['table']); 
$parameter = ($_POST['parameter']); 
$value = ($_POST['value']); 
$db = mysql_connect(localhost, root, ""); 
$select = mysql_select_db(records, $db); 
$query="INSERT INTO $_POST['table'] (Parameter,Value) 
     VALUES ('".$_POST['parameter']."','".$_POST['value']."');"; 
} 
mysql_query($query,$connection);} 
catch(Exception $e) 
{ 
echo 'Erreur : '.$e->getMessage().'<br />'; 
echo 'N° : '.$e->getCode(); 
} 
?> 

Кроме того, кнопка отправки имеет onclick() и тег действия. Когда нажата кнопка отправки, я хочу, чтобы функция submit() выполнялась, так что я должен сделать для этого? Когда я нажимаю кнопку отправки, значения параметра и значения не вводятся в мою базу данных, называемую записями с 4 таблицами с именами 1,2,3 и 4. Спасибо!

Я думаю, что есть некоторые probllem с этой линией:

$query="INSERT INTO $_POST['table'] (Parameter,Value) 
     VALUES ('".$_POST['parameter']."','".$_POST['value']."');"; 
+1

** Опасность **: Вы используете [в ** устаревшую ** базы данных API] (http://stackoverflow.com/q/12859942/ 19068) и должен использовать [современную замену] (http://php.net/manual/en/mysqlinfo.api.choosing.php). Вы уязвимы для [SQL-инъекций] (http://bobby-tables.com/) **, что современный API упростит [защиту] (http://stackoverflow.com/questions/60174/ наилучшим образом-чтобы-предотвратить-sql-injection-in-php). – Quentin

+0

Это прекрасно. Его единственный местный. – RaviTej310

+1

Это не нормально. Вы учите себя плохим привычкам. Вы предполагаете, что локальный код никогда не будет превращен в открытый код (часто ошибочное предположение). Вы запрашиваете помощь в отладке кода, который использует функции, которые люди больше не используют. Вы используете функции, которые проще отлаживать, чем современные версии. – Quentin

ответ

0

Вы закомментирована представить() и Может быть, это проблема ...

Представление формы обгоняет вызов OnClick.

Вы должны проверить это: http://www.codediesel.com/javascript/prevent-form-submissions-with-javascript-disabled/

<script> 
$(function(){ 
    $("form").submit(function(e) {  
    e.preventDefault(); 
    }); 
}); 
</script> 
+0

О, извините. Я забыл его отредактировать. Проверь сейчас. Его все еще не работает – RaviTej310

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