2017-04-22 15 views
3

私のフォームには、入力タイプ= "radio"フィールドがあり、これはPHPループコードによって生成されます。それぞれにはという名前のという配列があります。これらの入力フィールドの値は、AJAXを介して処理されます。問題は、JavascriptまたはjQueryでこれらの入力フィールドの値を読み取る方法がわかりません。複数のPHP変数をJavascript配列に取得する

ここに私のコードが書いてあります(簡体字)。 PHPで

<form id="_user_roles_form" method="post" class="form-horizontal"> 

    <p><strong>Manager</strong></p> 

    <div class="form-group row"> 
     <label class="col-lg-6 control-label">Register Companies</label> 
     <div class="col-lg-6"> 
      <div class="btn-group" data-toggle="buttons"> 
       <label class="btn btn-default active"> 
        <input type="radio" name="_data[Manager][publish_companies]" value="1"/> True 
       </label> 
       <label class="btn btn-default "> 
        <input type="radio" name="_data[Manager][publish_companies]" value="0"/> False 
       </label> 
      </div> 
     </div> 
    </div> 

    <div class="form-group row"> 
     <label class="col-lg-6 control-label">Edit Companies</label> 
     <div class="col-lg-6"> 
      <div class="btn-group" data-toggle="buttons"> 
       <label class="btn btn-default active"> 
        <input type="radio" name="_data[Manager][edit_companies]" value="1"/> True 
       </label> 
       <label class="btn btn-default "> 
        <input type="radio" name="_data[Manager][edit_companies]" value="0"/> False 
       </label> 
      </div> 
     </div> 
    </div> 

    <div class="form-group row"> 
     <label class="col-lg-6 control-label">Edit Others Companies</label> 
     <div class="col-lg-6"> 
      <div class="btn-group" data-toggle="buttons"> 
       <label class="btn btn-default active"> 
        <input type="radio" name="_data[Manager][edit_others_companies]" value="1"/> True 
       </label> 
       <label class="btn btn-default "> 
        <input type="radio" name="_data[Manager][edit_others_companies]" value="0"/> False 
       </label> 
      </div> 
     </div> 
    </div> 

    <div class="form-group row"> 
     <label class="col-lg-6 control-label">Edit Customers</label> 
     <div class="col-lg-6"> 
      <div class="btn-group" data-toggle="buttons"> 
       <label class="btn btn-default "> 
        <input type="radio" name="_data[Employee][edit_customers]" value="1"/> True 
       </label> 
       <label class="btn btn-default active"> 
        <input type="radio" name="_data[Employee][edit_customers]" value="0"/> False 
       </label> 
      </div> 
     </div> 
    </div> 

    <div class="form-group row"> 
     <label class="col-lg-6 control-label">Edit Others Customers</label> 
     <div class="col-lg-6"> 
      <div class="btn-group" data-toggle="buttons"> 
       <label class="btn btn-default "> 
        <input type="radio" name="_data[Employee][edit_others_customers]" value="1"/> True 
       </label> 
       <label class="btn btn-default active"> 
        <input type="radio" name="_data[Employee][edit_others_customers]" value="0"/> False 
       </label> 
      </div> 
     </div> 
    </div> 

    <div class="form-group row"> 
     <label class="col-lg-6 control-label">Delete Customers</label> 
     <div class="col-lg-6"> 
      <div class="btn-group" data-toggle="buttons"> 
       <label class="btn btn-default "> 
        <input type="radio" name="_data[Employee][delete_customers]" value="1"/> True 
       </label> 
       <label class="btn btn-default active"> 
        <input type="radio" name="_data[Employee][delete_customers]" value="0"/> False 
       </label> 
      </div> 
     </div> 
    </div> 

    <div class="form-group"> 
     <div class="col-lg-12"> 
      <button type="submit" class="btn btn-default">Confirm</button> 
     </div> 
    </div> 

</form> 

、Iは、配列変数として_data [] []を使用することができるが、私はAJAXに渡すことができるようにするJavaScript変数にこれを読み取る必要があります。通常はjQuery( '#_ID')。val()で行いますが、この場合は動作しません。私はjavacript配列変数を宣言し、type = "radio" & name = "_ data- *"のHTML要素のすべて(とそれぞれ)を見つけて、見つかった要素の名前と値をそれぞれ配列。私はこれをどのように解決できるかはわかりません。

お手数をおかけしますようお願い申し上げます。ありがとうございました。

+0

ので、あなたは、AJAXを経由して、この形式ですべての入力を送信したいですか? – David

+0

@Davidはいこのフォームのすべての入力をAjax経由で送信したいと思います。 – Dongsan

答えて

1

すべての値を送信する場合は、serializeArray()関数を使用します。

var formData = jQuery('#_user_roles_form').serializeArray(); 

あなたはWordPressを使用している場合は、おそらくも必要です

formData.push({name: 'action', value: 'yourAjaxAction'}); 
// if you have set yourself up to use nonce 
// formData.push({name: 'nonce_data', value: yourNonceValue }); 

jQuery.ajax({ 
    url   : ajaxUrl, // global ajax url 
    type  : 'post', 
    data  : formData, 
    success  : function(data, textStatus, jqXHR) { 
// etc etc 
+0

魅力的な作品です! SerializeArray()とMelissa Freemanにうってつけ! – Dongsan

+1

恐ろしい!あなたはそれを働いてうれしいです。 –

関連する問題