2015-07-14 4 views
1

Я создаю форму, в которой я хотел бы вставить какой-либо ввод текста, число и в следующий текст ввода, автоматически заполнить имя, соответствующее номеру в БД , Я проверил множество «решений», которые я видел здесь и на других сайтах, но никто не работал.Заполните второй текст ввода, основанный на предыдущем

Мой код скрипта:

$("#numero").blur(function() { 
    $.post(convoc.php, { numero: $(this).val() }, function (data) { 
     $("#nome").val(data); 
    }); 
}); 

Мой код convoc.php:

if (@$_POST['numero'] != "") 
     $numero = $_POST['numero']; 
$query = "SELECT Nome from ******* where Numero = $numero"; 
    $result = mysql_query($query); 
    $row = mysql_fetch_array($result); 

    echo json_encode($row['Nome']); 

(Это работает хорошо, потому что я испытал эхо, и это печать правильное название)

Идентификатор моего сообщения Первый текст ввода: «numero», а идентификатор второго входа - «nome».

Есть ли что-то, что я делаю неправильно в функции скрипта?

HTML-код:

<body onload="load()" style="padding-top: 20px;"> 
    <form action="convoc.php" method="post"> 
     <div id="myform"> 
     <table align="center"> 
<tr> 
      <td><input type="text" id="numero" name="numero"></td> 
      <td><input type="text" id="nome" name="nome"></td> 
     <td><input type="button" id="add" value="Convocar" onclick="Javascript:addRow()"></td> 
    </tr> 

</table> 
</div> 

</form> 
</body> 

, ИС-код:

function addRow() { 

    var numero = document.getElementById("numero"); 
    var nome = document.getElementById("nome"); 
    var table = document.getElementById("myTableData"); 


    var rowCount = table.rows.length; 
    var row = table.insertRow(rowCount); 

    row.insertCell(0).innerHTML= '<input type="button" value = "Delete" onClick="Javacsript:deleteRow(this)">'; 
    row.insertCell(1).innerHTML= numero.value; 
    row.insertCell(2).innerHTML= nome.value; 
} 

function deleteRow(obj) { 

    var index = obj.parentNode.parentNode.rowIndex; 
    var table = document.getElementById("myTableData"); 
    table.deleteRow(index); 

} 

function load() { 

    console.log("Page load finished"); 

} 

(И нет, я не получаю какие-либо ошибки в браузере)

+0

Покажите нам HTML пожалуйста. –

+0

Показать код HTML .. – CoderNeji

+0

Определена функция load()? Можете ли вы отправить ответ на вызов ajax? Вы получаете какую-либо ошибку в консоли своего браузера? – MazzCris

ответ

2

изменить сценарий как показано ниже.

Первый параметр convoc.php должен быть 'convoc.php'.

$(function(){ 
    $("#numero").blur(function() { 
     //use $.ajax 
    $.ajax({ 
     url:'convoc.php', 
     dataType:'json', //The datatype should be json because you are returning in json format 
     data : {numero: $(this).val()}, 
     success:function(data){ 
     $("#nome").val(data.result); 
     } 
    }); 
    }); 
}); 

изменение также код PHP, как показано ниже.

echo json_encode(array("result"=>$row['Nome'])); 
+0

Спасибо за ответ, но все равно не работает. Я схожу с ума от этого, и я уверен, что это глупая мелочь в коде, который отсутствует ... – vallete7

+0

Я внес изменения в код. Пожалуйста, просмотрите его. –

+0

Еще раз оцените ответ, но он продолжает работать. – vallete7

0

Просто добавь JSon На конец:

$("#numero").blur(function() { 
    $.post(convoc.php, { numero: $(this).val() }, function (data) { 
    $("#nome").val(data); 
    }); 
},"json"); // This Line 
+0

Не исправить проблему ... – vallete7

Смежные вопросы