2016-06-29 4 views
0

Мне нужно вставить значение, полученное из document.getElementById, в sql-запрос. Мне нужно сделать это, потому что я пытаюсь автозаполнять второе поле ввода в зависимости от результата первого (т. Е. Если я нахожу Рим в первом, я бы хотел, чтобы второй автозаполнялся со связанной страной, найденной в моем db , как Италия)Используйте document.getElementById в запросе или другим способом для этого

Вот код:

<?php 
    echo (" <form NAME='Form1' id='Form1' method=post class=statsform action=page.php > "); 
    echo (" <input type=text name=city id=city size=50 class=formfield value='$city' onBlur='Assigncode();' > "); 
    echo (" <input type=text name='Country' id='Country' size=12 value='$Country' > "); 
?> 
<script> 
function Assigncode() { 
    var elemento = document.getElementById("city");  
    var elementoCod = document.getElementById("Country");  
    if (elemento != null && elemento.value != '') { 
     var city = elemento.value; 
     if (elementoCod == null || elementoCod.value == '') { 
      <?php 
$query2 = "SELECT * FROM table WHERE city = 'put here the getElementById of the city' "; 
$result2 = MYSQL_QUERY($query2); 
$i2 = 0; 
    $country  = mysql_result($result2,0,"T_Country"); 
    ?> 

      eval("document.Form1. Country").value = '<?php echo($country)?>'; 
     } 
    } 
} 
</script> 

Любое предложение? Thanks

+0

Вам нужно будет использовать AJAX, чтобы делать то, что вы хотите. Есть ли у вас опыт работы с AJAX? – primehalo

+0

PHP работает на сервере задолго до запуска javascript в браузере. Вы не можете их смешивать – charlietfl

+0

Невозможно. PHP работает на стороне сервера и JS на стороне клиента. Возможно, вы захотите использовать ajax-звонки –

ответ

-1

Ниже приведена небольшая версия сценария примера AJAX, найденного в Википедии. Это должно дать вам основную идею о том, как действовать. Если вы используете jQuery, то многие из этих JavaScript могут быть сведены к нескольким строкам.

// This is the client-side javascript script. You will need a second PHP script 
// which just returns the value you want. 

// Initialize the Http request. 
var xhr = new XMLHttpRequest(); 
xhr.open('get', 'send-ajax-data.php?city=' + elemento.value); 

// Track the state changes of the request. 
xhr.onreadystatechange = function() { 
    var DONE = 4; // readyState 4 means the request is done. 
    var OK = 200; // status 200 is a successful return. 
    if (xhr.readyState === DONE) { 
     if (xhr.status === OK) { 
      document.Form1.Country.value = xhr.responseText; // 'This is the returned text.' 
     } else { 
      alert('Error: ' + xhr.status); // An error occurred during the request. 
     } 
    } 
}; 

// Send the request to send-ajax-data.php 
xhr.send(null); 

посыла Ajax-data.php:

<?php 
$city = $_GET['city']; 
$query2 = "SELECT * FROM table WHERE city = '$city'"; 
$result2 = MYSQL_QUERY($query2); 
$country = mysql_result($result2,0,"T_Country"); 
echo $country; 

Кстати, переменный города $ должен быть проверен и спасся перед использованием в запросе SQL.

+0

Почему downvote? Разве это не способ достичь цели? – primehalo

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