2017-04-24 20 views
2

これは、Onclick functionのフォームにPOST入力を追加することです。だから、私が情報を確認するときには、Javascript経由で、Javascript経由で行う前にform.submit()、IdCronoなどの情報を追加したい。今やって何イム はForm.action = "myPhpFunction.php"である、それはJavaScriptでPOSTにキーとIdCronoを追加するために、とにかくJavaScript経由でフォームに値を追加するには?

"myPhpFunction.php?key=1&IdCrono=1" 

になるように、アクションを経由してGET変数を追加しているのですか?

私のコードは次のようになります。

function GuardarMilestone(a) { 
 
    var id = a.id; 
 
    var idCrono = Math.floor(a.id/10); 
 
    alert(idCrono); 
 
    var form = document.getElementById("Form" + id); 
 
    if (id % 10 == 0) { 
 
    //alert("Resto 0"); 
 
    var date = form.elements["FechaInicio"]; 
 
    } else { 
 
    //alert("Resto 5"); 
 
    var date = form.elements["FechaFin"]; 
 
    } 
 
    if (date.value != "") { 
 
    form.action = "InteriorInternalFunciones.php?key=1&id=" + id; 
 
    form.target = "_self"; 
 
    form.submit(); 
 
    } else { 
 
    alert("Please fill in the date before saving"); 
 
    } 
 
}
<form method="POST" id="Form<?php echo $rstMilestones->fields['IdCronograma']; ?>0" action=""> 
 
    <input type="date" style="font-size: 9px; font-style: bold;" name="FechaInicio" value="<?php echo $strFaseInicioSinFormato;?>"> 
 
    <input type="hidden" name="IdCronograma" value="<?php echo $rstMilestones->fields['IdCronograma']; ?>"> 
 
    <a href="#botones" id="<?php echo $rstMilestones->fields['IdCronograma']; ?>0" onclick="GuardarMilestone(this)"><img src="images/PC_si.png" alt="Save"></a> 
 
    <a href="#botones" id="<?php echo $rstMilestones->fields['IdCronograma']; ?>0" onclick="EditarFechaCronograma(this)"><img src="images/PC_no.png" alt="cancel"></a> 
 
</form>

+2

空の値を持つ 'key、id'の2つの非表示入力を追加し、それらにid(html属性)を与えます。次に、フォームを送信する前に隠し入力を更新することができます。 'document.getElementById(" IdCrono ")。value = id;' – JustOnUnderMillions

+1

あなたのフォームに 'POST'があり、あなたは 'GET'を作成しているのですか? – RST

+0

@RSTはい私は動的に送信するPOST変数を追加できるかどうかわからないので、GET変数を使用するのは嫌いです。だから私はそれを行う方法があるかどうか尋ねている。 –

答えて

1

多分これは自分のコードにこの機能を追加し、役立ちます。

function addFields(form, inputName, inputValue) { 
    // Create an <input> element 
    var input = document.createElement("input"); 
    input.type = "hidden"; 
    input.name = inputName; 
    input.value = inputValue; 
    form.appendChild(input); 
} 

をして、この行を置き換えます。

form.action = "InteriorInternalFunciones.php?key=1&id=" + id; 
これで

form.action = "InteriorInternalFunciones.php; 
addFields(form, "key", 1); 
addFields(form, "id", id); 

これは、フォームが送信される直前に、あなたのコードに隠されたフィールドを追加し、すべてがPOSTメソッドで送信されます。

関連する問題