-2

これが私のjavascriptコードです:

$( ".modifica_sore" ).click(function(){
var button = this;
$.ajax({
  type: "POST",
  url: "action/modifica_professori.php",

  data: {               
            nome: $(button).siblings('[name="nome"]').attr("value"),
            cognome: $(button).siblings('[name="cognome"]').attr("value"),
            id: $(button).siblings('[name="id"]').attr("value"),
            modifica_sore: $(button).siblings('[name="modifica_sore"]').attr("value"),
  },
  dataType: "html",

  success: function(msg)
  {
    alert("Aggiunto con successo");
    $("#risultato").html(msg);
  },
  error: function()
  {
    alert("Chiamata fallita, si prega di riprovare...");  callback in caso di fallimento
  }
});
  });

そして、私のフォームがあります:

echo"<form method='POST'>";
echo"<fieldset>";
echo"<table>";
echo"<tr>";
   echo"<td>Nome</td>";
   echo"<td><input class='nome' name='nome' value='$nome'/></td>";
echo"</tr>";
echo"<tr>";
   echo"<td>Cognome</td>";
   echo"<td><input class='cognome' name='cognome' value='$cognome'/></td>";
echo"</tr>";
echo"<tr>";
   echo"<td></td>";
   echo"<td><input type='hidden' class='id' name='id' value='$id'/></td>";
echo"</tr>";
echo"<tr>";
     echo "<td> <input type='button' name='modifica_sore' class='modifica_sore'  value='Modifica' /> </td>";
    echo "<td> <input type='button' name='modifica_sore' class='modifica_sore' value='Elimina' /> </td>";
echo"</tr>";
echo"</table>";
echo"</fieldset>";
echo"</form>";

Ajaxを使用しない場合は機能しますが、Ajaxを使用すると次のエラーが発生します。

Notice: Undefined index: nome in C:\xampp\htdocs\xampp\action\modifica_professori.php on line 8

Notice: Undefined index: cognome in C:\xampp\htdocs\xampp\action\modifica_professori.php on line 9

Notice: Undefined index: id in C:\xampp\htdocs\xampp\action\modifica_professori.php on line 10

Notice: Undefined index: modifica_sore in C:\xampp\htdocs\xampp\action\modifica_professori.php on line 13

Notice: Undefined index: modifica_sore in C:\xampp\htdocs\xampp\action\modifica_professori.php on line 26

そしてmodifica_professori.phpで私はこれらの$_POST変数を使用します:

$nome = $_POST['nome'];
$cognome = $_POST['cognome'];
$id = $_POST['id'];
$_POST['modifica_sore']

しかし、Ajaxなしで動作する場合、問題はjavascriptにあります...:/助けてくれてありがとう...

4

2 に答える 2

0

これは、ボタンに兄弟のような名前の要素.modifica_soreがないために発生します。値を取得するには、次のようなものを使用する必要があります。<input>"nome""cognome""nome"

$(button).closest("table").find('[name="nome"]').val();
于 2013-03-10T00:10:30.587 に答える
0

siblings()がない.modifica_soreため、フォーム要素の値が正しく送信されていません。

idフォームに属性を追加してから、次のようなセレクターを使用することをお勧めします。

nome: $('#formid input[name="nome"]').attr('value')
cognome: $('#formid input[name="cognome"]').attr('value')
...

ajaxデータオブジェクトで。

編集:

フォームを変更できないとおっしゃっていたので、セレクターを次のように変更してみてください。

var form = $(button).parents('form');

...
data: {
  nome: form.find('input[name="nome"]').attr('value'),
  cognome: form.find('input[name="cognome"]').attr('value'),
  ...
},
...
于 2013-03-10T00:16:50.770 に答える