Я использую PHP для ввода таблицы, сгенерированной из запроса MySQL, в смешанный файл HTML / PHP, используя <div>
. <div>
объявлено в index.php
примерно так: <div id="searchdiv"></div>
.
И содержимое для <div>
создается так:
(1) Создать окно поиска:
<form id="searchform">
<td class="master">Codigo o nombre cliente: <input type="text" name="box" onkeypress="return noenter()" /><input id="srchsubmit" type="submit" value="Buscar" onclick="showUser(this.form['box'].value);return false;" /><br /></td></form>
(2) Выполнить JavaScript:
function showUser(str){
if (str==""){
document.getElementById("searchdiv").innerHTML="";
return;
}
if (window.XMLHttpRequest){
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{
// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
document.getElementById("searchdiv").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","search.php?q="+str,true);
xmlhttp.send();
}
(3) Построить результат для внедрения в <div>
:
<?php
// Fetch the string from the search box
$q=$_GET["q"];
// Connection settings
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "scorecard";
//Connect to MySQL Server
mysql_connect($dbhost, $dbuser, $dbpass);
//Select Database
mysql_select_db($dbname) or die(mysql_error());
// Fetch data
$sql="SELECT * FROM scoreboard WHERE codcliente = '".$q."' OR lower(nombre) LIKE '%".strtolower($q)."%'";
$result = mysql_query($sql);
if(mysql_num_rows($result) == 0){
echo '<div align="center" style="background-color:#CCCCCC; font-weight:bold; color:#C0504D;">Record no existe. <input id="srchcreate" type="button" value="Crear" /></div>';
return;
}
//echo $result;
// Construct the table
echo "<table id='srchtable' class='srchtable'>";
// Construct the array
while($row = mysql_fetch_array($result)){
echo "<tr>";
echo "<td align='center'>" . $row['codcliente'] . "</td>";
echo "<td align='left'>" . $row['nombre'] . "</td>";
// echo "<td align='center'>" . $row['ejecutivo'] . "</td>";
// echo "<td align='center'>" . $row['banca_as400'] . "</td>";
// echo "<td align='center'>" . $row['banca_real'] . "</td>";
// echo "<td align='right'>" . $row['ingresos'] . "</td>";
echo "<td align='center'>" . $row['ciiu'] . "</td>";
// echo "<td align='center'>" . $row['division'] . "</td>";
echo "<td align='left'>" . $row['actividad'] . "</td>";
echo "<td align='center' class='{$row['riesgo_industria']}'>" . $row['riesgo_industria'] . "</td>";
echo "<td align='center' class='{$row['riesgo_cliente']}'>" . $row['riesgo_cliente'] . "</td>";
echo "<td align='center'>" . $row['fecha'] . "</td>";
echo "<td align='center'>" . $row['analista'] . "</td>";
echo "<td align='center'>" . "<input id='edit' type='button' value='Editar' onclick='' />" . "</td>";
echo "</tr>";
}
echo "</table>";
?>
Результат выглядит примерно так: Снимок экрана . У меня вопрос, как я могу сделать поля редактируемыми внутри строки, когда я нажимаю кнопку «Редактировать»? Может быть, поместить параметр ввода в передней части <td>
, чтобы выбрать строку для редактирования? Как я могу внести изменения обратно в MySQL после редактирования? Спасибо!