1

我有这段代码要求用户输入值并提交。

html

 <form id="myForm" method="post" action="saving.php">
            <p><label for="input1">Input 1:</label>
                <input type="text" size="10" name="input1" id="input1" />
            </p>
            <input id="save" name="save" type="submit" value="save" />
    </form>
    <p><span id="thevalue"></span><span id="existornot"></span></p> 

js

$("#myForm").submit(function(event) {    
    event.preventDefault();      
    $("#myForm").validate(
      {     rules: {input1: "required",},
            messages: {input1: "message error input"},
            });
    if( $("#myForm").valid()){ 
        var $form = $("#myForm" ),
        url = $form.attr( "action" ), 
        insertedVal=$("#input1").val(); 

        $.post(url,{input1:insertedVal},  
          function(){

          //displaying value condition
          $("#thevalue").html(insertedVal);
          // ... msg from php to be inserted to #existornot 

          });  
       }
}); 

保存.php

<?php
  if(!empty($_POST['input1']))
  {
    $inputone= mysql_real_escape_string(trim($_POST['input1']));
    $result = mysql_query("SELECT COUNT(*) FROM `test_table` WHERE `name` = '$inputone' ");
      if (mysql_result($result, 0, 0) > 0) 
      {
        echo "is duplicate data" ;
      } 
      else 
      {      
        mysql_query("INSERT INTO `test_table`(name)  VALUES ('$inputone')") ;
         echo "is updated to db" ;
      }
  }
  else
  {
    echo "could not be empty"  ;
  }

?>

如何将那些“重复数据”或“已更新为 db”的消息从 php 传递到 javasript,以告诉用户提交过程是失败还是成功?

提前感谢您的任何建议。

4

5 回答 5

1

更改 jQuery post 后的函数调用以接受数据变量并处理结果:

    $.post(url,{input1:insertedVal},  
      function(data){

      //displaying value condition
      $("#thevalue").html(insertedVal);
      // ... msg from php to be inserted to #existornot 

      if (data != 'is updated to db') {
          alert(data);
      }

      });  
   }

(数据将包含您保存功能中回显的内容)

于 2013-01-03T18:22:59.957 回答
1

来自 php 文件的响应在 ajax 回调函数中。所以你应该像这样向你的函数添加一个参数:

$.post(url,{input1:insertedVal},function(resp)
{
     // resp is the callback from php.
     console.log(resp);
     $("#thevalue").html(insertedVal);
});

有关 ajax 工作原理的更多信息,您可以点击此链接:5 Ways to Make Ajax Calls with jQuery
希望对您有所帮助。

于 2013-01-03T18:23:15.483 回答
0

像这样:

$.post(url,{input1:insertedVal},  
      function(data){

      //displaying value condition
      $("#thevalue").html(insertedVal);
      // ... msg from php to be inserted to #existornot 
      $("#existornot").html(data);

      });  
   }

通过将“数据”变量添加到回调函数(),该“数据”变量将使用任何 php echo 作为输出进行更新。然后,您可以将该“数据”插入回调函数中的#existornot。

请在此处查看 API:http: //api.jquery.com/jQuery.post/

于 2013-01-03T18:16:27.660 回答
0

如果要打印从 php 返回的值,请检查 jquery $.post

$.post(url,{input1:insertedVal},  
          function(data){
          //displaying value condition
          $("#somediv_id").html(data);
          $("#thevalue").html();
          // ... msg from php to be inserted to #existornot 

 });  
于 2013-01-03T18:18:08.330 回答
0

$.post 回调函数将传递一个包含服务器响应的参数。所以你的 $.post 请求应该看起来像

$.post(url, {input1: insertedVal}, function(response) {
    console.log(response); // should output the server message echoed.
});

通常最好使用 JSON 作为服务器响应。

于 2013-01-03T18:23:00.410 回答