繁体   English   中英

PHP 将变量和数组发布到 Jquery

[英]PHP post variable and array to Jquery

我有这两个领域:

<input type="text" name="smsText" value="text sms to send to all">
<input type="text" name="recipients[]" value="3471234567">
<input type="text" name="recipients[]" value="3359876543">
<input type="text" name="recipients[]" value="3201472583">

我需要使用ajax调用发送到php页面。

我在许多脚本中使用了这个函数

$("#sendSms").click(function(){
    var text = $("input[name=smsText]").val();
    var recipients = $("input[name=recipients]").val();
     var datastr ='text=' + text +'&recipients=' + recipients;
    $(over).appendTo('#box');
    $.ajax({
        type: "POST",
        url: "send-result.php",
        data: datastr,
        cache: false,
        success: function(data){
            $('#box').html(data);
        }
    });
    return false;
});

拜托,我需要帮助修改我的函数以通过 Ajax 将“smsText”和数组接收者 [] 发送到其他 php 页面...

非常感谢!

看看 jQuery 函数 .serializeArray() 和 .serialize()

替换您的以下代码:

var recipients = $("input[name=recipients]").val();
var datastr ='text=' + text +'&recipients=' + recipients;

对于这个:

var datastr = '';
$("input[name='recipients[]']").each(function() {
    datastr += '&recipients[]=' + $(this).val();
});
datastr ='text=' + text + datastr;

这应该做你想做的事情,并导致 PHP 创建数组变量$_POST['recipients']其中包含你的所有值。

尝试:

var datastr = '&recipients[]=';
var arr = [];
$("input[name='recipients[]']").each(function() {
  arr[] = $(this).val();
});

datastr ='text=' + text + datastr + arr;

如果字段包含在表单中,您可以使用 jQuery 的 serialize() 方法将字段转换为字符串以通过 Ajax 发送

<form id="sms-form">
    <input type="text" name="smsText" value="text sms to send to all">
    <input type="text" name="recipients[]" value="3471234567">
    <input type="text" name="recipients[]" value="3359876543">
    <input type="text" name="recipients[]" value="3201472583">
</form>

$("#sendSms").click(function(){
    var datastr = $("form#sms-form").serialize();
    $(over).appendTo('#box');
    $.ajax({
        type: "POST",
        url: "send-result.php",
        data: datastr,
        cache: false,
        success: function(data){
            $('#box').html(data);
        }
    });
    return false;
});

尝试

html

 <form name='ohForm' action="#">

     <input type="text" name="smsText" value="text sms to send to all">
     <input type="text" name="recipients[]" value="3471234567">
     <input type="text" name="recipients[]" value="3359876543">
     <input type="text" name="recipients[]" value="3201472583">
     // and others components

 </form>

javascript

          $("#sendSms").click(function(){
                var form = $("form[name='ohForm']");
                var datastr = form.serialize();
                $(over).appendTo('#box');
                $.ajax({
                    type: "POST",
                    url: "send-result.php",
                    data: datastr,
                    cache: false,
                    success: function(data){
                     $('#box').html(data);
                    }
               });
        return false;
    });

php

         print_r($_POST['data']);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM