如何使用javascript将表单值发送到php而不重新加载页面

时间:2014-05-31 13:57:31

标签: php html

我想创建一个表单,用户输入一个名称来创建一个新记录并同时检查,如果记录存在与否,那么用户不能插入2个同名记录(但是这个不是主键)。 我现在正在使用以下代码,但每次我需要检查输入的值时这个重新加载页面

    <html>
    <?php    
     require_once('../php/classes/class.add_album.php');
     $file_name='';
     $file_not_found="NULL";
     if ($_SERVER["REQUEST_METHOD"] == "POST") {
          $file_name = test_input($_POST["file_name"]);
          echo $file_name; //for testing
          //make new object
          $objfile = new add_album();   
          //call object methid with post method value we got and save result in result 
          $file_not_found=$objfile->find_album($file_name);
          echo $file_not_found; //for testing

     }
    function test_input($data) {
       $data = trim($data);
       $data = stripslashes($data);
       $data = htmlspecialchars($data);
    return $data;
    }
    if($file_not_found){
        echo '<form>';
        echo '<label>File Name </label>';
        echo '<input type="text" value='.$file_not_found.' >';

    }  else {
        echo '<form method="POST" action="temp.php">';
        echo '<label>File Name</label>';
        echo "<input type=text  name='file_name' placeholder='New file name plz'  >";
        echo"<input type=submit  name=submit value=submit>";

    }
    ?>        
    </form>    

`

2 个答案:

答案 0 :(得分:0)

用户ajax将表单数据发送到类。

以下是ajax功能

$.ajax({
    url  :"yourfile.php",
    type :"POST",                   
    data    :$("#formid").serialize(),
    success : function(response)
   {
     // do someting here.
   }

您的PHP文件(yourfile.php)

$obj = new db();
$yourdata = $_POST;
$res = $obj->validateUser($yourdata) ;

答案 1 :(得分:0)

按照我上面提到的javascript ajax和相同的php文件。

请参阅此链接以获取ajax http://www.w3schools.com/ajax/ajax_xmlhttprequest_send.asp

    function validateUser()
    {
        var xmlhttp;
        if (window.XMLHttpRequest)
        {
            xmlhttp=new XMLHttpRequest();
        }
        else
        {
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange=function()
        {
            if (xmlhttp.readyState==4 && xmlhttp.status==200){ 

                 //alert(xmlhttp.responseText);
               // do somting here..
               document.getElementById("captcha_validation").value=xmlhttp.responseText;
        }

}
  xmlhttp.open("POST","yourfile.php",true);

  xmlhttp.send("username=abc&password=xyz");

}