Andres Perez
Andres Perez

Reputation: 3

Form php, html, js

Please help me,

I have a a field "alias" type radio "yes" "no" when I select "yes" the form show the hidden field "family name" "first name" this work perfect, the file php send good the information, but I've added a bottom for "add alias" and the form show other two fields "family name" "first name" but the problem is that the php file dont send the information in the extra fields.

<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>

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

Code 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>";
    }
    }

Thanks a lot!

Upvotes: 0

Views: 86

Answers (1)

DDRamone
DDRamone

Reputation: 1158

Use following scenario:

HTML:

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

name attribute contains [ ] brackets. It means, that you can take values in PHP as array:

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

Upvotes: 2

Related Questions