SQL执行语句

问题描述:

我试图插入一行到动态HTML表格,然后在数据库中更新它。我在一个单独的文件中的php标签内有一个SQL准备和执行语句。有没有一种方法可以将变量放入执行语句中,该语句将读取并存储主页上对话框中插入内容的信息,以便将任何输入的内容插入到文本字段中以添加行?我到目前为止在网上找到的唯一东西是将特定信息硬编码到执行语句中,这是我不想要的。SQL执行语句

按钮表:

<div id="users-contain" class="ui-widget"> 
<table id="html_master" class="ui-widget ui-widget-content"> 
<thead> 
    <tr class="ui-widget-header"> 
    <td>ID</td> 
    <td>Vendor</td> 
    <td>Buyer ID</td> 
    <td>POC Name</td> 
    <td>POC Email</td> 
    <td>POC Phone</td> 
    <td>Edit/Delete</td> 
    </tr> 
</thead> 
<tbody> 


<?php 
    /* Foreach loop that brings in information to populate table */ 
    foreach ($dbh->query($sql) as $rows){ 
    ?> 
    <tr> 
     <td class="mr_id" contenteditable="false"><?php echo intval ($rows['MR_ID'])?></td> 
     <td class="mr_name" name="field" contenteditable="false"><?php echo $rows['MR_Name']?></td> 
     <td class="buyer_id" contenteditable="false"><?php echo $rows['Buyer_ID']?></td> 
     <td class="poc_n" contenteditable="false"><?php echo $rows['MR_POC_N']?></td>  
     <td class="poc_e" contenteditable="false"><?php echo $rows['MR_POC_E']?></td> 
     <td class="poc_p" contenteditable="false"><?php echo $rows['MR_POC_P']?></td> 
     <td><input type="button" class="edit" name="edit" value="Edit"> 
     <input type="button" class="deactivate" name="deactivate" value="Deactivate"></td> 
    </tr> 
<?php 
    } 
?> 

DB连接,并执行语句:通过DB循环导入信息的行

<form> 
    Table Name: <input type="text" value="Stage_Rebate_Master" id="tableNameInput"> 
    <button class="create-user" id="insertButton">Insert Test Object</button> 
    <button id="updateButton">Update Test Object</button> 
    <button id="deleteButton">Delete Test Object</button> 
    </form> 

HTML表格

<?php 

    $tableName = $_POST['tableName']; 

    $host="xxxx"; 
    $dbName="xxxxxx"; 
    $dbUser="xxxxxxxxxxx"; 
    $dbPass="xxxxxx"; 

    $pdo = new PDO("sqlsrv:server=".$host.";Database=".$dbName, $dbUser, $dbPass); 

    $sql = "INSERT INTO ".$tableName." (MR_ID, MR_Name, Buyer_ID, MR_POC_N, MR_POC_E, MR_POC_P) VALUES (?, ?, ?, ?, ?, ?)"; 
    $stmt = $pdo->prepare($sql); 
    $result = $stmt->execute(array(0,'Test Object', '1234', 'John','[email protected]','555-555-5555')); 
    echo json_encode($result); 

?> 

对话框,我需要从我的执行语句中提取并输入的信息:

<p>All form fields are required.</p> 

    <form> 
    <fieldset> 
     <label for="mr_name">Vendor</label> 
     <input type="text" id="mr_name"> 
     <label for="buyer_id">Buyer ID</label> 
     <input type="text" id="buyer_id"> 
     <label for="poc_n">POC Name</label> 
     <input type="text" id="poc_n"> 
     <label for="poc_p">POC Email</label> 
     <input type="text" id="poc_e"> 
     <label for="poc_p">POC Phone</label> 
     <input type="text" id="poc_p"> 

     <input type="submit" id="submit" tabindex="-1" style="position:absolute; top:-1000px"> 
    </fieldset> 
    </form> 
+0

你的问题不是很清楚。你可能会[编辑]它并添加一个例子? – Chris

+1

@Chris我编辑它,并添加了一些代码,使其更清晰 – Rataiczak24

+0

现在可以取消它!!我更新了它,现在更清晰了! – Rataiczak24

一个选项可以使用AJAX在单独的PHP文件中调用您的代码,并使用AJAX在您的表中添加一行或在完成SQL查询后重新加载页面。

您可以随时将变量传递给通过ajax的'data:'部分调用的PHP页面;

<script type="text/javascript"> 
function addRow() { 
ajaxWrite = $.ajax({ 
    url: './requesters/addRow.php', 
    type: 'GET', 
    dataType: 'text', 
    data: { fileName: "." + propFolder + currentUser + userTimings, 
      fileContents: JSON.stringify(slotTimings) 
    }, 
    beforeSend: function(xhr, settings) { 
     $("#fileLoadIndicator").fadeIn(0, "linear"); 
     document.getElementById("fileLoadIndicator").innerHTML = "Creating custom user file for: " + currentUser + "<br>Now uploading file to server."; 
    }, 
    success: function(data, textStatus, xhr) { 
     document.getElementById("fileLoadIndicator").innerHTML = xhr.responseText; 
     $("#fileLoadIndicator").delay(5000).fadeOut("slow", "linear"); 
    }, 
    error: function(xhr, textStatus, errorThrown) { 
     document.getElementById("fileLoadIndicator").innerHTML = "No custom user file was able to be written for: " + currentUser + "<br>Error: " + errorThrown + "."; 
     $("#fileLoadIndicator").delay(5000).fadeOut("slow", "linear"); 
    } 
}); 

}

在HTML;

<button id="addRow" onclick="addRow()">Add a Row</button> 

把它们拉出来,它是一个简单的PHP变量赋值;

<?php 
$fileName=$_GET[ 'fileName' ]; 
$fileContents=$_GET[ 'fileContents' ]; 
?>