2016-05-04 6 views
0

をJSはい「私が選択したときに」私は「はい」「いいえAAフィールド「エイリアス」タイプのラジオを持って、フォームPHP、HTML、

を助けてください最初の「姓」「フォームを隠しフィールドを表示します」名前 "この完璧な作業、ファイルphpは、良い情報を送信するが、私は"エイリアスを追加 "のフォームを他の2つのフィールド"家族名 ""ファーストネーム "を表示しましたが、問題は、余分なフィールドに情報を送信します。

<span id="aliaser"> 
No<input type="radio" name="otheralias" value="0" checked />&nbsp;&nbsp;Yes<input type="radio" name="otheralias" value="1" /> 
</span> 
<div id="morealias"> 
<br><div data-toggle="tooltip" title="">Family Name * <i class="fa fa-question-circle" aria-hidden="true"></i></div> 
<input type="text" name="alias_lastname" id="aliaslastname" /> 
<br><div data-toggle="tooltip" title="">First (Given) Name * <i class="fa fa-question-circle" aria-hidden="true"></i></div> 
<input type="text" name="alias_firstname" id="aliasfirstname" /><br> 
<div id="aliasextra"></div> 
<input type="hidden" name="aliasadded" id="aliasadded" value="0"/> 
<br> 
<div class="fullrow"> 
<div class="leftcol"> 
<span> 
<a onclick="add_alias()" class="button medium dark">Add alias</a>&nbsp;&nbsp; 
</span> 
</div> 
<div class="rightcol"> 
<span> 
<a onclick="removealias()" class="button medium dark">Remove alias</a> 
</span> 
</div> 
</div> 
</div> 

コードのjs

//more aliases 
     $("#aliaser input[type='radio']").click(function(){ 
      if($(this).attr("value")=="1"){ 
       $("#morealias").css("display","block"); 
       $("#aliaslastname").prop('required',true); 
       $("#aliasfirstname").prop('required',true); 
       //$("input").prop('required',true); 
      } 
      else { 
       $("#aliaslastname").val(""); 
       $("#aliasfirstname").val(""); 
       $("#aliaslastname").prop('required',false); 
       $("#aliasfirstname").prop('required',false); 
       $("#morealias").css("display","none"); 
      } 
     }); 
    // 

    //more alias 
    function add_alias() { 
    var crd=$("#aliasadded").val(); 
    var newblock='<div class="fullrow" id="alremove' +crd + '">'; 
    newblock +='<br><b>Other Alias:</b><br>'; 
    newblock +='Family Name:'; 
    newblock +='<input type="text" name="alias_lastname' +crd + '" id="aliaslastname' +crd + '" />'; 
    newblock +='First (Given) Name:'; 
    newblock +='<input type="text" name="alias_firstname' +crd + '" id="aliasfirstname' +crd + '" />'; 
    newblock +='</div>'; 


    $("#aliasextra").append(newblock); 
    var whichlastname="#aliaslastname" + crd ; 
    var whichfirstname="#aliasfirstname" + crd ; 
    $(whichlastname).prop('required',true); 
    $(whichfirstname).prop('required',true); 
    crd++; 
    $("#aliasadded").val(crd); 
    } 

    function removealias(){ 
    var crd=$("#aliasadded").val(); 
    crd --; 
    var whichal="#alremove" +crd ; 
    $(whichal).remove(); 
    $("#aliasadded").val(crd); 
    } 

コードPHP

$texter .="Known by other aliases?: " . $data_array["otheralias"] . "<br>"; 
    if($data_array["otheralias"]=="Yes") { 
    $texter .="Alias last name: " . $data_array["alias_lastname"] . "<br>"; 
    $texter .="Alias first name: " . $data_array["alias_firstname"] . "<br>"; 
    } 
    if($aliasadded >0) { 
    for($i=0;$i<$aliasadded;$i++) { 
    $b=$i+1; 
    $texter .="<b>Extra alias No. " . $b . ":</b><br>"; 
    $texter .="Alias last name: " . $data_array["alias_lastname$i"] . "<br>"; 
    $texter .="Alias first name: " . $data_array["alias_firstname$i"] . "<br>"; 
    } 
    } 

どうもありがとう!

+1

「alias_lastname」と「alias_firstname」の配列(alias_lastname []、alias_firstname [])である必要がありそうでない場合はフォームを送信するだけで、最後の値になります送ってください – jeff

+0

こんにちは、私はこれを置く必要があります正確に私はもう少し詳しく教えてもらえますか?私はこれではあまり良くはありません、私はちょうど同様の他のフォームの例に従います –

答えて

2

利用シナリオを次

HTML:

Alias 1 Firstname: <input type="text" name="firstname[]" /> 
Alias 2 Firstname <input type="text" name="firstname[]" /> 

属性は[]ブラケットが含まれています。それはあなたが配列としてPHPの値を取ることができることを、意味:

$names = $_POST['firstname'] 
$alias1 = $names[0]; 
$alias2 = $names[1]; 
+0

こんにちは、私がこれを置くべき場所はどこですか?私はこれでうまくいきません。他の形式の例にちょうどよく似ています。 –

+0

どこでも入力タグ名を更新してください。 'alias_firstname'ではなくhtmlで' alias_firstname + cdr'の代わりにjsで 'alias_firstname []'を入力してください。 'lastname'に対しても同じことをします。あなたのPHPファイルでは、次のような値が得られます: '$ data_array [" alias_firstname "] [0]'、 '$ data_array [" alias_firstname "] [1]' ...デバッグを開始すると、 – DDRamone

+0

@AndrésPrerezもしこの助けがあれば、この答えを解決できますか? – DDRamone