1

私はこの2つのフィールドを持っています:

<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;
});

「smsText」と配列の両方の受信者[]をAjax経由で他の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

試す

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 に答える
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 に答える