GVKun编程网logo

如何通过ajax从php传回变量(ajax向php传值)

6

以上就是给各位分享如何通过ajax从php传回变量,其中也会对ajax向php传值进行解释,同时本文还将给你拓展javascript–如何通过AJAX发送PHP数组?、php–如何通过ajax提交和验

以上就是给各位分享如何通过ajax从php传回变量,其中也会对ajax向php传值进行解释,同时本文还将给你拓展javascript – 如何通过AJAX发送PHP数组?、php – 如何通过ajax提交和验证表单、php – 如何通过Ajax请求或每次加载页面来验证用户?、php – 通过ajax从input type = file发送原始文件数据等相关知识,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

如何通过ajax从php传回变量(ajax向php传值)

如何通过ajax从php传回变量(ajax向php传值)

我有来自登录页面的脚本,通过ajax将数据发送到PHP,如果成功与否则返回PHP,我只是想知道如何更改我的脚本以便它还会发回2个变量并在我的登录js脚本中接收它所以我可以创建饼干?这是我的js和PHP脚本:

JS:

$(document).on('pageinit',function(){
        $("#login").click(function(){

            username=$("#usr").val();
            password=$("#psw").val();
            $.ajax({
                type: "POST",url: "http://imes.***********.com/PHP/login_check.PHP",data: "name="+username+"&pwd="+password,success: function(html){
                    //in case of success
                    if(html=='true')
                    {
                        $("#login_message").html("Logged in,congratulation.");
                        $.mobile.changePage("http://imes.***********.com/userpanel.PHP");
                    }
                    //in case of error
                    else
                    {
                        $("#login_message").html("Wrong username or password");
                    }
                },beforeSend: function() { $.mobile.showPageLoadingMsg(); },//Show spinner
                complete: function() { $.mobile.hidePageLoadingMsg() } //Hide spinner
            });
            return false;
        });

PHP:

<?PHP
session_start();
    $username = $_POST['name'];
    $password = $_POST['pwd'];
    include('MysqL_connection.PHP');
    MysqL_select_db("jzperson_imesUsers",$con);

    $res1 = MysqL_query(
     "SELECT * FROM temp_login WHERE username='$username' AND password='$password'"
     );

    $num_row = MysqL_num_rows($res1);
    if ($num_row == 1) {
        echo 'true';
    }
     else {
        echo 'false';
    }
?>

解决方法

尝试使用Json作为响应:

PHP端

...
$json = new Services_JSON();
echo $json->encode("{a:1,b:2}");

JS

...
 success:function(data){
            if(data)
            {
             console.log(data.a);
             console.log(data.b);
             }
  ....

您可以在PHP中编码任何数组并将其作为ajax回调传递.

Json课你可以获得there

javascript – 如何通过AJAX发送PHP数组?

javascript – 如何通过AJAX发送PHP数组?

在我的注册页面上,人们可以通过填写一些输入广告复选框来注册我的网站.它基本上是一个将数据发送到带有ajax的 PHP页面的表单,然后将其放入数据库中.

例如,javascript从表单中获取值

var w = _("website").value;
var bio = _("bio").value;

然后像这样发送ajax.send(“w =”w“& bio =”bio);这是应该的,但我想添加一些东西.

现在我有一些复选框,我希望在一个数组中通过ajax发布在一个变量中.所以在我的表单中我有这段PHP:

$licensessql = MysqLi_query($db_conx,"SELECT * FROM licenses");
while($licenserecord = MysqLi_fetch_assoc($licensessql)) {
echo '<input type="checkBox" value="'.$licenserecord["license"].'" name="licenses[]" id="'.$licenserecord["license"].'"><label for="'.$licenserecord["license"].'">'.$licenserecord["license"].'</label><br>';
}

使用纯PHP,这将工作,并将复选框中的所有值放在数组license []中,但我不知道如何使用ajax实现此目的.如果我有5个复选框,我希望javascript var具有例如值’value1,value2,value3’并将其发布到PHP.

谢谢!

解决方法

首先,我建议使用其他答案中发布的表单序列化.

要回答你的实际问题:“如果我有5个复选框,value3’并将其发布到PHP.”

这是一个完整的工作示例(使用3个复选框),它将生成一个javascript变量,您可以使用该变量传递给您的AJAX post方法以供PHP处理.

JSfiddle:https://jsfiddle.net/o5q04vf0/

代码片段:

$(document).ready(function() {
  $('#btnTest').click(function() {
    var checkBoxValues = $("[name=licenses\\[\\]]").map(function() {
      if ($(this).is(':checked')) {
        return this.value;
      }
    }).get().join();

    alert(checkBoxValues);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkBox" value="0" name="licenses[]" />
<input type="checkBox" value="1" name="licenses[]" />
<input type="checkBox" value="2" name="licenses[]" />
<button id="btnTest">Submit</button>

这将帮助您指导正确的方向,但请考虑通过AJAX传递数据,就像这里建议的其他成员一样.

php – 如何通过ajax提交和验证表单

php – 如何通过ajax提交和验证表单

请尝试通过使用Ajax同时提交和验证我的表单到我的数据库,但它不适合我.
这是我的jquery

$(document).ready(function(){
       $(".button").click(function(){
             $("#myform").validate();

            //Ajax to process the form
       $.ajax({
           type: "POST",
           url: "process.PHP",
           data: { firstname: $("#firstname").val()},
           success: function(){
                               $('#message').html(data);
                               }
               });
          return false;
       });
      });

问题是当我提交表单时,Ajax表单提交给自己.
请一起使用jquery validate和$.ajax的正确方法是什么?

解决方法:

试试这个(按预期为我工作):

HTML表格:

<link rel="stylesheet" href="http://jquery.bassistance.de/validate/demo/css/screen.css" />
<script src="http://jquery.bassistance.de/validate/lib/jquery.js"></script>
<script src="http://jquery.bassistance.de/validate/jquery.validate.js"></script>
<script>    
// JQuery Script to submit Form
$(document).ready(function () {
    $("#commentForm").validate({
        submitHandler : function () {
            // your function if, validate is success
            $.ajax({
                type : "POST",
                url : "process.PHP",
                data : $('#commentForm').serialize(),
                success : function (data) {
                    $('#message').html(data);
                }
            });
        }
    });
});
</script>

<formid="commentForm" method="get" action="">
    <fieldset>        
        <p>
            <label for="cname">Name (required, at least 2 characters)</label>
            <input id="cname" name="name" minlength="2" type="text" required />
            <p>
                <label for="cemail">E-Mail (required)</label>
                <input id="cemail" type="email" name="email" required />
            </p>
            <p>
                <label for="curl">URL (optional)</label>
                <input id="curl" type="url" name="url" />
            </p>
            <p>
                <label for="ccomment">Your comment (required)</label>
                <textarea id="ccomment" name="comment" required></textarea>
            </p>
            <p>
                <inputtype="submit" value="Submit" />
            </p>
    </fieldset>
</form>

<div id="message"></div>

PHP代码:

<?PHP
echo $_POST['email'];
?>

php – 如何通过Ajax请求或每次加载页面来验证用户?

php – 如何通过Ajax请求或每次加载页面来验证用户?

这是一个非常简单的问题 – 虽然我现在正在思考这个问题,因为我开始了我的第一个真实世界和相当宏伟的(在大小方面)项目.

当通过PHP发送Ajax请求时,我将如何验证用户的身份(用户名和密码)?似乎有一个简单的解决方案:将用户名和密码作为POST变量与请求中的其他变量一起发送,但在我看来解决方案效率很低(因为每次请求都必须检查数据库)对于不同的Ajax请求,它是完全冗余的.

我研究了Twitter如何处理他们的Ajax请求(例如发布新的推文),我没有看到他们在请求中发送任何身份验证信息 – 但是他们怎么知道它实际上是我,我的个人资料的所有者,发送Ajax请求发布新推文?

如果它能帮助任何人提出一个很好的解决方案 – 我使用的是JQuery AJAX库和CodeIgniter PHP框架.

谢谢!

解决方法:

Ajax请求与任何其他HTTP请求完全相同.无论是通过JavaScript完成还是在浏览器的地址栏中输入URI,它们都是HTTP请求.

你是对的,通过HTTP发送用户名和密码是错误的解决方案.但是,通常需要发送一次用户名/密码,但这只能在HTTPS上完成,因此不会以纯文本形式发送.经过身份验证后,您可以将用户ID存储在服务器端会话变量中,以便在将来的请求中进行访问.

一个小伪代码可以帮助您:

if(!empty($_SESSION["userId"])) {
    // User is authenticated. Do something.
}
else if(!empty($_POST["username"])) {
    // User is attempting to log in. Check against database.
    $userId = getUserIdByUsernamePassword($_POST["username"], $_POST["password"]);

    // Store user id in session variable.
    if($userId > 0) {
        $_SESSION["userId"] = $userId;
    }
}
else {
    // User is not authenticated.
}

常见的缺陷是将身份验证存储在cookie中. Cookie存储在客户端,因此如果您这样做,任何人都可以通过创建自己的cookie来伪造身份验证.

在PHP中使用会话变量时,会使用cookie,但它根本不识别用户,而是识别客户端和服务器之间的连接.

但要成功验证实际项目,不应依赖会话cookie.相反,会话变量,UUID cookie和盐渍哈希cookie的组合可以提高身份验证的完整性……但这完全是另一个主题.

php – 通过ajax从input type = file发送原始文件数据

php – 通过ajax从input type = file发送原始文件数据

我有一个简单的形式:

<form enctype="multipart/form-data" id="imageupload">
   <input name="files" type="file" />
   <input type="button" value="Upload" />
</form>

现在我想用ajax请求发送所有文件.

此示例有效,但它有一个错误.在我保存的文件中,还有其他信息:

-----------------------------169443243924626
Content-disposition: form-data; name="files"; filename="shelby.png"
Content-Type: image/png


       $.ajax({
       url: 'imageupload.PHP',//server script to process data
       type: 'POST',xhr: function() {  // custom xhr
           myXhr = $.ajaxSettings.xhr();
           if(myXhr.upload){ // check if upload property exists
               myXhr.upload.addEventListener('progress',progressHandlingFunction,false); // for handling the progress of the upload
           }
           return myXhr;
       },//Ajax events
       //beforeSend: beforeSendHandler,//success: completeHandler,//error: errorHandler,// Form data
       data: new FormData($('#imageupload')[0]),//Options to tell JQuery not to process data or worry about content-type
       cache: false,contentType: 'multipart/form-data',processData: false
   });

现在我开始说:

$('#imageupload')[0].files.files[0]

我可以.我得到这个名字.但是如何获取原始文件数据?

解决方法

try this

 $filename =  $_FILES['ur_image']['name'] ;
 $filesize =  $_FILES['ur_image']['size']; 
 $erro     =  $_FILES['ur_image']['error']; //checks UPLOAD_ERR_OK
 $tmpname  = $_FILES['ur_image']['tmp_name'];              
 $dest     = ROOT_DIR.'/upload/logo/';

我们今天的关于如何通过ajax从php传回变量ajax向php传值的分享就到这里,谢谢您的阅读,如果想了解更多关于javascript – 如何通过AJAX发送PHP数组?、php – 如何通过ajax提交和验证表单、php – 如何通过Ajax请求或每次加载页面来验证用户?、php – 通过ajax从input type = file发送原始文件数据的相关信息,可以在本站进行搜索。

本文标签: