1

我有这两个领域:

<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 页面......

非常感谢你!

4

5 回答 5

1

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

于 2012-11-28T14:57:36.827 回答
1

替换您的以下代码:

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']包含所有值的数组变量。

于 2012-11-28T14:59:27.297 回答
0

尝试:

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

datastr ='text=' + text + datastr + arr;
于 2012-11-28T15:04:49.270 回答
0

如果字段包含在表单中,您可以使用 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;
});
于 2012-11-28T15:05:51.813 回答
0

尝试

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']);
于 2012-11-28T15:07:23.027 回答